我正在尝试在Rails中创建一个用js文件响应的表单。现在,我在app/assets/javascripts/login.js.coffee.erb
中有一个文件,当用户通过ajax提交表单时,我希望将其返回(我已经让没有启用javascript的用户工作正常)。这是表单的模板代码:
<%= form_tag("/trade/submit", :method => "post", :remote => true) do %>
# some stuff in here
<% end %>
在我的交易控制器中,我有一个方法提交,其中包括:
def submit
respond_to do |format|
format.html { render :layout => 'widget' + @widget_type.to_s, :template => 'login/index' }
format.js { render :action => 'login', :content_type => 'text/javascript' }
end
end
我对html的回复工作正常,但是当通过ajax调用表单时,它会返回此响应:
Missing template trade/submit, application/submit with {:handlers=>[:erb, :builder, :coffee], :formats=>[:js, :html], :locale=>[:en, :en]}. Searched in:
* "~/app_dir/app/views"
显然,它不应该是在观看,而是在javascripts,对吧?我尝试在format.js之后删除渲染块(保持默认设置以便查找提交),我也遇到了同样的问题。这是否意味着我必须在我的views目录中保存我的js文件?看起来有点凌乱,所以我觉得我一定是做错了。非常感谢任何帮助!
答案 0 :(得分:0)
它试图找到app / view / trade / submit.js.erb!尝试做一个简单的测试。
touch app/view/trade/submit.js.erb
vim app/view/trade/submit.js.erb
alert('done!');
再次运行它。