7

我创建了 _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 %>

是的,我确实有 2 份提交以相同的形式提交,并且它们都具有诸如“更新”和“销毁”之类的名称。

当用户按下销毁按钮时,将调用 books_controller 中的更新操作。
并判断是“更新”还是“销毁”请求。
为此,如何在控制器中获取其名称参数?

更新操作将是这样的

def update

 if params[:books][:name] == 'destroy'
  destroy transaction
 else
  update transaction
 end

end 
4

2 回答 2

5

尝试这个,

<%= f.submit 'Update', :class => 'btn btn-primary', :name => 'submit' %>
<%= f.submit 'Destroy', :class => 'btn btn-danger', :name => 'submit' %>

现在,当您更新时,您将获得params[:submit]“更新”,而当您销毁时,您将在控制器中获得params[:submit]“销毁”

于 2012-12-21T10:05:06.760 回答
0

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

有两种形式会更容易(也更简洁),一种是针对更新操作的输入,另一种是针对destoy操作的仅销毁按钮?

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

于 2012-12-21T09:45:57.837 回答