2012-02-01 125 views
1

我读过James Buck的this article,但已经过时了。Rails 3:嵌套资源3级深度?

这就是我知道的被认为是不好的做法:

resources :companies do 
    resources :users 
    resources :roles 
    resources :people do 
    resources :notes 
    end 
end 

难道这是我应该做的?

resources :companies do 
    resources :users, :roles, :people 
end 

resources :people do 
    resources :notes 
end 

有人可以请向我解释为什么或为什么不?

+0

是的,这是它的本质。 – phoet 2012-02-01 08:21:10

回答

0

两者都将生成确切的路线:公司,:用户,:角色和用于:人员。

但是:票据路线会有所不同。

在对于第一种情况:笔记路由将产生类似:

/companies/:company_id/people/:person_id/notes(.:format) 
/companies/:company_id/people/:person_id/notes/new(.:format) 

,并在第二种情况下的路由将不与公司联系,看起来像:

/people/:person_id/notes(.:format) 
/people/:person_id/notes/new(.:format) 

所以我觉得它的取决于你的应用和你想要的路线。

希望这会有所帮助。

+1

我知道这些路线会有所不同,但我更关心什么是最佳做法?我已经读过不要超越两个层次,所以我的第二个例子被认为是最佳实践?我是Rails新手,想从右脚开始。 – 2012-02-01 15:15:26