如何在控制器中获取f.submit的名称参数?

我创建了_form.html.erb,其编码方式如下

 { :class => 'form-horizontal' } do |f| %> ....  'btn btn-primary', :name => 'update' %>  'btn btn-danger', :name => 'destroy' %> ....  

是的,我确实有2个以相同forms提交的提交,并且它们都有诸如’update’和’destroy’之类的名称。

当用户按下destroy按钮时,将调用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]作为“更新”,当你毁灭时你会在你的控制器中获得params[:submit] as“Destroy”

销毁时,您是否需要表单的其他输入值?

有两种forms会更容易(也更清晰),一种是针对更新动作的输入,另一种是仅针对destoy动作的销毁按钮?

如果你需要访问其他输入,我仍然建议你有两个不同的动作和两个不同的forms,我还建议你在提交时使用JS / jQuery从第一个表单中获取你需要的字段的值。第二种forms