所以我是RoR中的新手Ajax,并且在某些操作结束后首先遇到执行 .js.erb 文件的问题。通过'某个动作',我的意思是不是由Rails生成的默认值,因为那些似乎工作正常。
这是我得到的:
index.html.erb :
<%= form_tag(:action => 'add_comment', :remote => true) do |c| %>
Name:
<%= text_field :comment, :name %>
<br/>
Comment:
<br/>
<%= text_area :comment, :text, :cols => 30, :rows => 10 %>
<br/><br/>
<%= submit_tag 'Add comment' %>
<% end %>
comments_controller.rb 中的操作add_comment:
def add_comment
@comment = Comment.new(params[:comment])
@comment.save
respond_to do |format|
format.html { redirect_to comments_path }
format.js
end
end
的routes.rb :
match 'comments/add_comment' => 'comments#add_comment'
然而,通过刷新页面添加了注释 - add_comment.js.erb未执行(将add_comment和add_comment.js.erb两个动作重命名为'create'时)。
我做错了什么?
答案 0 :(得分:0)
<%= form_tag add_comment_path, :remote => true do %>
...
<% end %>
在您的路线中:
resources :comments do
post :add, :on => :collection
end