我如何在控制器中获得f.submit的名称参数?
我创建了_form.html.erb,其中它是这样编码的
<%= form_for @book, :html => { :class => 'form-horizontal' } do |f| %>
....
<%= f.submit nil, :class => 'btn btn-primary', :name => 'update' %>
<%= f.submit 'Destroy', :class => 'btn btn-danger', :name => 'destroy' %>
....
<% end %>
是的,我有两份相同的表格提交,并且他们都有“更新”和“销毁”等名称。
当用户按下销毁按钮时,将调用books_controller中的更新操作。
并判断它是“更新”还是“销毁”请求。
为此,我如何在控制器中获取其名称参数?
更新行动将是这样的
def update
if params[:books][:name] == 'destroy'
destroy transaction
else
update transaction
end
end
尝试这个,
<%= f.submit 'Update', :class => 'btn btn-primary', :name => 'submit' %>
<%= f.submit 'Destroy', :class => 'btn btn-danger', :name => 'submit' %>
现在,当你更新时,你会得到params[:submit]
作为“Update”,当你销毁时,你会在你的控制器中获得params[:submit]
作为“Destroy”
销毁时,你需要表单的其他输入值吗?
有两种形式比较容易(和更清洁),一种是输入目标是更新动作,另一种是只有销毁按钮针对destoy动作?
如果您需要访问其他输入,我仍然建议您有两个不同的操作和两种不同的形式,我还建议您在提交时使用JS / jQuery从第一个表单获取所需字段的值第二种形式
链接地址: http://www.djcxy.com/p/67771.html上一篇: How can I get f.submit's name parameter in controller?
下一篇: ui only sending OPTIONS not POST http method despite working API