关于何时最好嵌套模型名称空间以及何时最好将它们全部保留在顶层的指导方针是什么?
例如,当我有几个类都与一个核心类有关(并且系统的大部分只处理该核心类)时,我的直觉告诉我这样声明它们:
CoreModel
CoreModel::DependentOne
CoreModel::AnotherDependent
几乎总是这对应于 has_many/belongs_to 关系(我几乎认为这是约定优于配置的下一个候选者。)
同样,我的路线经常反映这种嵌套:/CoreModels/:core_model_id/DependentOne/:id
我觉得我应该这样做的原因是,通常同一个大型应用程序的两个组件区域可能需要一个支持组件,其名称与软件的其他区域相似(如果不相同)。我觉得命名这些依赖模型(仅存在以支持该核心模型)是最好的方法。
我很困惑,因为虽然有时以这种方式做事可以使事情变得更容易(例如 link_to 只需要采用 DependentOne 模型并且会自动正确路由)但其他项目如 form_for 拒绝正常工作(因为它不正确路由,如果我将 CoreModel 添加到 form_for 它抱怨没有这样的路由 core_model_core_model_dependent_one 等......
也许我还不够清楚,所以我会确保在要求澄清时更新它。