我有以下路由,允许使用类似 /:username/:project_name
resources :users, :path => "/" do
resources :projects, :path => "/"
end
问题是 /:username/edit
不起作用,因为它正在寻找名称为“edit”的项目。
有办法解决这个问题吗?谢谢!
最佳答案
执行此操作的几种方法...
1) 会给你类似 /:user_id/:id
的路由(你想要的)
match '/:user_id/edit', :to => 'users#edit', :as => :edit_user
resources :users, :except => [:edit], :path => "/" do
resources :projects, :path => "/"
end
2)将为您提供诸如 /:user_id/projects/:id
之类的路线(您似乎正在避免这样做)
resources :users, :path => "/" do
resources :projects
end
我个人更喜欢#2,因为它更干净,并且一目了然地提供更多有关路线的信息。
关于ruby-on-rails - Rails 嵌套资源和 :path => "/",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8840269/