如何在Rails中使用RESTful路由创建删除表单。

我正在尝试创建一个表单,用作控制器上destroy方法的确认。 在我的路线中,我有:

resources :leagues do get 'delete', :on => :member end 

在我的delete.html.erb中,我有以下内容:

  {:method => :delete} do |form| %>   'cancel' %>  

current_league是一个由以下内容定义的辅助函数:

 def current_league @current_league ||= League.find_by_id(params[:id]) end 

所以问题在于生成的表单只编辑联盟模型,如form method =“post”所示。

 

我怎样才能解决这个问题?

我认为这已经有效了。 如在rails指南中http://guides.rubyonrails.org/form_helpers.html#how-do-forms-with-patch-put-or-delete-methods-work-questionmark

但是,在提交表单时,大多数浏览器不支持“GET”和“POST”以外的方法。

Rails通过使用名为“_method”的隐藏输入在POST上模拟其他方法来解决此问题,该输入设置为反映所需的方法:

正如你在输出表格中看到的那样

 
.... ....

读取此变量时,rails知道这是DELETE方法,而不是POST方法。 即使它自己的forms是一个POST。