:rails 3路由的任何选项

时间:2010-06-08 16:23:34

标签: ruby-on-rails-3

在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

是否有人知道此选项是否已被删除或仅重命名?

3 个答案:

答案 0 :(得分:12)

通过挖掘并查看getpostputdeleteActionDispatch行为实际执行的内容,我认为< / em>您需要做的就是match。所以:

resources :items do
  get :erase, :on => :member
  match :erase, :on => :member
end

我认为匹配的语法实际上没有记录,但它构建的路由至少对我来说是对all方法的期望

答案 1 :(得分:0)

好问题。

查看Edge Rails routing guideRails 3 source,它看起来不受支持。您可以在Rails Lighthouse中提出一张票(我找不到现有票)。

答案 2 :(得分:0)

匹配将起作用,但遗憾的是不在资源定义中。我希望他们能够带回一种至少在一起定义获取/发布的方式..