我正在学习 Ruby 和 Rails,并试图找出最正确的路径来解决可能的命名空间和路由问题。
假设我有一个“动物园”模型和“物种”模型。我还需要它们之间的关系来判断动物园中有哪些物种(动物园有很多物种,它们也有自己的属性,如数量、位置等)
我希望我的路线是这样的:
/zoo
/zoo/:id
...
/zoo/:zoo_id/species/
/zoo/:zoo_id/species/:id
...
/species
/species/:id
我试过搞乱模块、命名空间、路由范围等。我似乎无法理解我想要的方式,并且认为必须有更好/自然的方式来做到这一点。问题主要是因为我有一个物种模型以及一个动物园的物种模型(我已经尝试对 Zoo 进行命名空间并创建 Zoo::Zoo 和 Zoo::Species 类,创建 ZooSpecies 类,以及为这些场景调整路线等)
从组织的角度来看,能够拥有 Zoo 类以及 Zoo 命名空间、拥有 Zoo::Species 等会很棒,但这是不可能的。
组织这样的事情的正确方法是什么?
更新:我当前的设置...
Zoo Module
Zoo::Zoo Class
Zoo::Species Class
Species Class
路线:
resources :zoos, path: 'zoos' do
resources :zoo_species, path: 'species', as: 'species', controller: 'zoo/species'
end
还有一个Zoo
控制器和一个Zoo::Species
控制器。我觉得我越来越接近预期的结果,但与框架的斗争比我认为的要多。仍然遇到一些问题正确设置关系和路径,必须指定很多配置值