2012-01-12 125 views
2

我有以下的路线,这使得对于网址像/:username/:project_nameRails的嵌套的资源和:路径=>“/”

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

的问题是,/:username/edit不起作用,因为它正在寻找项目与'编辑'的名称。

任何方法?谢谢!

+0

你试图完成什么网址结构? – sunkencity 2012-01-12 18:35:29

+0

正如我上面写的,我想要像'/用户名/ project_name'和'/用户名/ project_name_2'的网址。问题是这不允许'/用户名/编辑'。 – 2012-01-12 18:36:49

+0

您是否尝试“手动”添加此路线?我会在资源路径前添加一个匹配“/ username/edit”=>“users#edit”。顺便说一下,这个路由设置不是一个好主意。这将导致更多的问题... – phoet 2012-01-12 21:34:16

回答

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