Rails嵌套资源和:path => “/”

时间:2012-01-12 18:25:52

标签: ruby-on-rails ruby ruby-on-rails-3 routes url-routing

我有以下路线,允许使用/:username/:project_name

等网址
resources :users, :path => "/" do
  resources :projects, :path => "/"
end

问题是/:username/edit不起作用,因为它正在寻找名为“edit”的项目。

有什么方法吗?谢谢!

1 个答案:

答案 0 :(得分:3)

有两种方法可以做到这一点......

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,因为它更清洁,并且一目了然地提供了有关路线的更多知识。