模板丢失(应用程序找不到.js.erb文件)

时间:2012-10-25 18:45:14

标签: javascript ruby-on-rails

我正在尝试使用位于/ app / views / users /中的create.js.erb模板 但我收到以下错误:

Template is missing
Missing template users/create, application/create with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "/home/tim/fairym/app/views" 

我的控制器操作,我基于以下railscast: http://railscasts.com/episodes/381-jquery-file-upload

  def create   
    @user = User.create(params[:user])
  end

这里有什么问题?

3 个答案:

答案 0 :(得分:3)

它不期待一个js文件。在方法中添加respond_to块:

def create
  @user = User.create(params[:user])

  respond_to do |format|
    format.js
    # add more 'format' calls for any other formats this method should ever respond to.
  end
end

答案 1 :(得分:2)

我知道这已经回答了,但我遇到了同样的问题和错误信息,并通过添加" remote:true"解决了这个问题。我的形式。每当在表单上提交ajax调用时,您都需要这样做。

我知道这对大多数人来说是显而易见的,但对于像我这样常常忘记这些事情的新手来说并不明显。

例如:

<%= form_for([@club, @club_order], remote: true) do |f|  %>

希望这有帮助。

答案 2 :(得分:1)

无法找到您的模板的原因是,如果您在railscast剧集中注意到,他正在针对script的数据类型执行AJAX请求

$('#new_painting').fileupload
    dataType: "script"

因此,根据您如何链接到创建操作,链接可能需要呈现html格式。

Template is missing
Missing template users/create, application/create with {:locale=>[:en], **:formats=>[:html]**, :handlers=>[:erb, :builder, :coffee]}. Searched in: * "/home/tim/fairym/app/views"

您可以通过向操作添加render js来解决此问题,或者如果您正在执行ajax请求,请确保将您的数据类型设置为脚本。