我需要为3个模型做嵌套资源:
遵循Rails指南建议我不应该这样做:
resources :families
resources :breeds
resources :animals
end
end
和“Rails Guides”建议使用“浅”,所以我应该这样做:
resources :families, shallow: true do
resources :breeds, shallow: true do
resources :animals
end
end
我理解“指南”说“不嵌套成员行为”......仅限:[:index,:new,:create] ...
但是它似乎只适用于最后两个嵌套资源,有3个嵌套资源(比如我的情况)rake routes
给我:
Prefix: breed_animals
Verb: GET
URI Pattern: /breeds/:breed_id/animals(.:format)
Controller#Action: animals#index
我期望在URI模式中:
URI Pattern: /family/:family_id/breeds/:breed_id/animals(.:format)
¿我失去了什么?
非常感谢
答案 0 :(得分:1)
这是使用浅路由时的预期结果:
/breeds/:breed_id
这很浅,因为无论您在哪个家庭,品种ID都是独一无二的。
因此,该品种的动物指数对于该路线也是正确的,浅路由的行为符合预期。