如何在Rails 3路由中为新资源添加自定义路由?
我知道如何为集合和成员执行此操作,但此样式似乎不适用于新资源。这是一个错误还是我做错了什么?
所以这些工作:
collection do
get :wish
end
member do
get :wish
end
但这不起作用:
new do
get :wish
end
答案 0 :(得分:4)
试试这个:
resources :<resource name> do
member do
get '<custom action>'
end
end
举一个例子,让我们看看你有一个名为'main'的控制器,如果你有一个自定义动作'dashbord'
resources :admin do
member do
get 'dashbord'
end
end
答案 1 :(得分:1)
换句话说,您希望匹配以下内容:
example.com/foos/new/custom
而不是example.com/foos/1/custom/
或example.com/foos/custom
这不是RESTful,这意味着它没有自动路由。你应该能够使用非资源路由来做到这一点,即这样的事情应该有效:
match 'resource/new/custom'=>'resource#custom'
...其中'custom'是控制器中的操作名称。
有关更多选项和详细信息,请参阅the rails guide。