Ruby on rails RubyonRails3文档:“;我可以吗&引用;“这样做明智吗?”;是否使用(至少)嵌套资源?
我阅读了\2.7.1节,特别是其中的嵌套限制 资源不应该嵌套得更多 深度超过1层 这是什么意思?也就是说,“我可以”\“建议使用这样的一级嵌套资源吗”Ruby on rails RubyonRails3文档:“;我可以吗&引用;“这样做明智吗?”;是否使用(至少)嵌套资源?,ruby-on-rails,ruby,ruby-on-rails-3,resources,nested,Ruby On Rails,Ruby,Ruby On Rails 3,Resources,Nested,我阅读了\2.7.1节,特别是其中的嵌套限制 资源不应该嵌套得更多 深度超过1层 这是什么意思?也就是说,“我可以”\“建议使用这样的一级嵌套资源吗” namespace "users" do resources :publishers do resources :magazines end end 或者我应该使用类似的东西 namespace "users" do resources :publishers resources :magazines end ?你觉得
namespace "users" do
resources :publishers do
resources :magazines
end
end
或者我应该使用类似的东西
namespace "users" do
resources :publishers
resources :magazines
end
?你觉得怎么样
如果这是一种推荐的方法,那么如何编写路由路径(例如
新用户\u出版商\u杂志
..)我认为这是品味的问题。这只是一个指南,不是规则。如果你觉得第一种方法更好,那就去做吧。我使用双重嵌套资源,我的同事中没有人对此不抱怨。但当然,若我看到4层或更多的嵌套资源,那个么写路径就很难了,所以我的限制是2层(有时是3层)。你应该选择自己的限额。这取决于你需要什么
namespace "users" do
resources :publishers do
resources :magazines
end
end
会给你不同的路线
namespace "users" do
resources :publishers
resources :magazines
end
首先,第二个给你的路线是
/用户/1/出版商/和/用户/1/杂志
而第一个给出
/用户/1/出版商/1/杂志
建议不要在你的路线上尽可能多地筑巢,除非你真的需要,就像你的生活依赖于它一样:p。我就是这么想的,因为3个级别的嵌套可能会让你遭受比帮助更大的痛苦。它说明了不止一个级别,因此这是正确的,建议你始终通过出版商访问杂志:
namespace "users" do
resources :publishers do
resources :magazines
end
end
这取决于模型:如果一本杂志属于出版商,而出版商属于用户,那么两级嵌套是有意义的(尽管它不是真正必要的)。如果一个出版商有很多用户,那么我建议不要使用这种方法,因为它会使事情变得不必要的复杂
要查看资源的命名路由帮助程序,可以使用“rake routes”。它很好地概述了定义的路由。您也可以将浅路由用于资源。这是两全其美的做法。它会自动将资源嵌套一层,即使您在代码中嵌套了多个级别
namespace :users do
shallow do
resources :publishers do
resources :maagazines
end
end
end
正如我所说,您必须始终从出版商编写到杂志的路线,因此:
/users/publisher/5/magazies
您输入的第一个代码就是您所需要的。命名空间“用户”执行资源:发布者执行资源:杂志结束