Rails 3:嵌套资源3级深度?

时间:2012-02-01 04:34:06

标签: ruby-on-rails

我已经读过James Buck的this article,但它有点过时了。

以下是我所知道的不良做法:

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

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

1 个答案:

答案 0 :(得分:0)

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

但是:注意路线会有所不同。

在第一种情况下:notes路由会生成如下内容:

/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)

所以我认为它取决于你的应用程序和你想要的路线。

希望这会有所帮助。