2012-02-01 183 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