2014-02-06 73 views
4

在simple_form中可以使用http delete動詞代替默認的後置動詞嗎?simple_form刪除方法改爲post方法

<%= simple_form_for @object , method: :delete do |f| %> 
    <%= f.input :instance_name, as: :check_boxes, collection: @roles %> 
    <%= f.button :submit %> 
<% end %> 

它不起作用。

回答

12

不幸的是,僅僅聲明它不起作用對理解你所看到的問題沒有幫助,但我會根據自己對「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使用,要調用正確的控制器方法。希望有所幫助。