我无法在这里或其他地方找到任何涵盖限制资源路由和在 Rails 3 中添加其他非 RESTful 路由的内容。这可能非常简单,但我遇到的每个示例或解释都只解决了一个案例不能同时。
这是我在 Rails 2 中所做的一个例子:
map.resources :sessions, :only => [:new, :create, :destroy], :member => {:recovery => :get}
非常简单,我们只需要 7 条 RESTful 路由中的 3 条,因为其他路由对该资源没有任何意义,但我们还想添加另一条用于帐户恢复的路由。
现在据我所知,做这些事情中的任何一件也非常简单:
resources :sessions, :only => [:new, :create, :destroy]
就像在 Rails 2 中一样。并且:
resources :sessions do
member do
get :recovery
end
end
那么,我该如何将这两者结合起来呢?我还可以使用旧的 Rails 2 方法吗?在 Rails 3 中有这样做的首选方法吗?
最佳答案
您可以将参数和 block 传递给资源
:
resources :sessions, :only => [:new, :create, :destroy] do
get :recovery, :on => :member
end
然后用 rake routes
测试它。
关于ruby-on-rails - 限制资源路由并在 Rails 3 中添加额外的非 RESTful 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6404604/