我很难概念化为此项目设置资源的最佳方法。
以下是我目前的路线:
resources :customers do
resources :jobs
end
resources :jobs
resources :rooms
resources :memos
resources :appliances
resources :accessories
end
我从这个问题中得到了我的结构:Rails 3 routing: Avoiding Deep Nesting
我的问题如下:
任何进一步的教育将不胜感激。谢谢!
答案 0 :(得分:1)
是的,你做对了。您可以嵌套资源,也可以不嵌套。
通常嵌套一个级别"强制"你找到每个资源。
考虑以下路线:
resources :customers do
resources :jobs do
resources :rooms
end
end
然后你会有像/customers/1/jobs/2/rooms/3/show
这样的相对路径。这意味着3号房间属于属于客户#1的工作#2。
换句话说,您最终会得到show
的{{1}}行动,包含3个实例:RoomsController
,@customer
和@job
,所有< strong>由SQL查询设置。
但您已经定义@room
属于room
且job
属于job
。那么你真的必须运行3个SQL查询吗?不,这就是为什么你要避免深度嵌套的路由(超过2~3级)。