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