我正在rails中通过关联实现has_many。
我想讨论命名联接表的最佳实践。我找到了这个链接:http://guides.rubyonrails.org/association_basics.html#tips-技巧和警告但它描述了has_and_belongs_to_many 的命名约定
hasmany的最佳联接表命名约定是什么:通过关联?
注意我的答案:我不是铁轨专家。这是我最近的经验。
对于has_and_belongs_to_any关系,命名约定是该关系的模型应包括您希望按字母顺序关联的表。因此,对于将学生加入小组,您可以使用group_pupils,这样rails就可以从学生和小组模型中的信息中找到表格。
对于has_many:through关系,您可以为联接表构建一个模型。因此,以学生和小组为例,您可以调用rails g model PupilGroup pupil:references group:references
来构建模型和迁移。或者,可以使用一个有意义的名称,例如pupil_groupings,也可以仅使用分组或集合。在belongs_to :pupil
和belongs_to :group
的示例中,由于模型包含用于设置联接的信息,因此取消了对表命名的限制,因为rails有另一种方法可以知道使用哪个表来存储关系。
因此,您应该选择一个合理的名称,以支持清晰度和维护