如何在 form_for 提交中传递 url?我尝试使用一种表单,每个按钮都指向每个控制器操作,一个是搜索,另一个是创建。是否可以在同一个表单上有 2 个具有不同操作的提交按钮?
<%= form_for @people do |f| %>
<%= f.label :first_name %>:
<%= f.text_field :first_name %><br />
<%= f.label :last_name %>:
<%= f.text_field :last_name %><br />
<%= f.submit(:url => '/people/search') %>
<%= f.submit(:url => '/people/create') %>
<% end %>
Rails 没有一种简单的方法可以根据按下的按钮将表单提交到不同的 URL。您可以在每个按钮上使用 javascript 来提交到不同的 URL,但处理这种情况的更常见方法是允许表单提交到一个 URL 并检测在控制器操作中按下了哪个按钮。
对于带有提交按钮的第二种方法,如下所示:
<%= form_for @people do |f| %>
# form fields here
<%= submit_tag "First Button", :name => 'first_button' %>
<%= submit_tag "Second Button", :name => 'second_button' %>
<% end %>
你的行动看起来像这样:
def create
if params[:first_button]
# Do stuff for first button submit
elsif params[:second_button]
# Do stuff for second button submit
end
end
See 这个类似的问题 https://stackoverflow.com/questions/3332449/rails-multi-submit-buttons-in-one-form有关这两种方法的更多信息。
另请参阅铁路广播第38集 http://railscasts.com/episodes/38-multibutton-form在多按钮表单上。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)