我如何在控制器中获得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