:rails 3路由的任何选项

Eva*_*van 11 ruby-on-rails-3

在rails 2中,您可以使用:any选项来定义响应任何请求方法的自定义路由,例如

map.resources :items, :member => {:erase => :any}
Run Code Online (Sandbox Code Playgroud)

rails 3似乎不支持:任何选项

resources :items do
  get :erase, :on => :member # works
  any :erase, :on => :member # doesn't work
end
Run Code Online (Sandbox Code Playgroud)

有没有人知道这个选项是否已被删除或只是重命名?

Jam*_*ong 12

从周围挖,看到什么get,post,put,和delete动作实际上做的ActionDispatch,我你需要做的是match.所以:

resources :items do
  get :erase, :on => :member
  match :erase, :on => :member
end
Run Code Online (Sandbox Code Playgroud)

我不认为匹配的语法实际上是记录在案的,但它构造的路由对我来说至少是你对all方法的期望


Joh*_*ley 0

好问题。

查看Edge Rails 路由指南Rails 3 源代码,它看起来不受支持。您可以在Rails Lighthouse购买一张门票(我找不到现有的门票)。