Ruby on rails 如何实施";删除所有“;轨道上的按钮?

Ruby on rails 如何实施";删除所有“;轨道上的按钮?,ruby-on-rails,rest,Ruby On Rails,Rest,我有一个元素索引页,我正在尝试实现一个“删除”按钮,该按钮将向控制器发送一个删除请求,其中包含用户已检查的元素列表。到目前为止,我已经做了以下工作 #routes.rb resources :messages, :except=>[:update,:edit] do member do delete :delete_all end end #index.html.haml =button_to "Delete", {:controller=>"messag

我有一个元素索引页,我正在尝试实现一个“删除”按钮,该按钮将向控制器发送一个删除请求,其中包含用户已检查的元素列表。到目前为止,我已经做了以下工作

#routes.rb
resources :messages, :except=>[:update,:edit] do
  member do
   delete :delete_all
  end
end      

#index.html.haml
=button_to "Delete", {:controller=>"messages", :action => "delete_all"}, :method=>"delete"
...
=check_box "message", "mark"

#messages_controller.rb
def delete_all
  ....
end
我一直试图以RESTful的方式完成,但我遇到了路由错误和其他棘手的问题。比如,当我使用纯AJAX时,我遇到了想要验证用户的before_过滤器的问题,它不允许我的请求通过


有人能解释一下我需要做什么吗?如何实现此按钮

尝试对路线使用
collection do
,因为这是您在视图中使用它的方式(没有
:id
)。

您能解释一下这种情况现在对您不起作用吗?对不起。上面的代码抛出“没有路由匹配{:controller=>”消息“,:action=>“delete_all”}”尝试对路由使用
collection do
,因为这是您在视图中使用它的方式(没有
:id
)。@wukerplank:这有效。非常感谢。我还有一个问题,但我会在另一篇文章中提问。(如果您将此作为答案提交,我可以认为它是正确的。)