在rails 2中,您可以使用:any选项来定义响应任何请求方法的自定义路由,例如
map.resources :items, :member => {:erase => :any}
rails 3似乎不支持:任何选项
resources :items do
get :erase, :on => :member # works
any :erase, :on => :member # doesn't work
end
是否有人知道此选项是否已被删除或仅重命名?
答案 0 :(得分:12)
通过挖掘并查看get
中post
,put
,delete
和ActionDispatch
行为实际执行的内容,我认为< / em>您需要做的就是match
。所以:
resources :items do
get :erase, :on => :member
match :erase, :on => :member
end
我认为匹配的语法实际上没有记录,但它构建的路由至少对我来说是对all
方法的期望
答案 1 :(得分:0)
好问题。
查看Edge Rails routing guide和Rails 3 source,它看起来不受支持。您可以在Rails Lighthouse中提出一张票(我找不到现有票)。
答案 2 :(得分:0)
匹配将起作用,但遗憾的是不在资源定义中。我希望他们能够带回一种至少在一起定义获取/发布的方式..