在simple_form中可以使用http delete动词而不是默认的post动词?
<%= simple_form_for @object , method: :delete do |f| %>
<%= f.input :instance_name, as: :check_boxes, collection: @roles %>
<%= f.button :submit %>
<% end %>
它不起作用。
答案 0 :(得分:14)
不幸只是声明它不起作用对理解你所看到的问题没有帮助,但我会根据自己最初对“method:”参数的混淆做出猜测。大多数浏览器不支持PUT和DELETE方法,因此simple_form_for所做的是使用POST方法生成表单,但它还添加了一个隐藏字段来传递实际方法。所以:
simple_form_for @service, url: service_path, method: :delete
产生
<form action="/services/6" method="post">
<input name="_method" type="hidden" value="delete" />
....
Rails使用它来调用正确的控制器方法。希望有所帮助。