无法获取Rails 3.1以正确响应js文件

时间:2011-10-04 00:55:20

标签: ajax ruby-on-rails-3

我正在尝试在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=&gt;[:erb, :builder, :coffee], :formats=&gt;[:js, :html], :locale=&gt;[:en, :en]}. Searched in:
  * &quot;~/app_dir/app/views&quot;

显然,它不应该是在观看,而是在javascripts,对吧?我尝试在format.js之后删除渲染块(保持默认设置以便查找提交),我也遇到了同样的问题。这是否意味着我必须在我的views目录中保存我的js文件?看起来有点凌乱,所以我觉得我一定是做错了。非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

它试图找到app / view / trade / submit.js.erb!尝试做一个简单的测试。

touch app/view/trade/submit.js.erb
vim app/view/trade/submit.js.erb
alert('done!');

再次运行它。