Ruby on Rails 使用迁移创建联接表
示例
对于has_and_belongs_to_many关系特别有用,您可以使用create_table方法手动创建联接表。假设您有两个模型Tags和Proyects,并且想要使用has_and_belongs_to_many关系将它们关联。您需要一个联接表来关联两个类的实例。
class CreateProjectsTagsJoinTableMigration < ActiveRecord::Migration def change create_table :projects_tags, id: false do |t| t.integer:project_id t.integer:tag_id end end end
表的实际名称必须遵循此约定:必须按字母顺序在另一个模型之前进行建模。Projectpreceds牛逼AGS所以表的名称是projects_tags。
同样,由于此表的目的是在两个模型的实例之间路由关联,因此该表中每个记录的实际ID都是不必要的。您通过传递来指定id:false
最后,按照Rails的约定,表名必须是各个模型的复数形式,但是表的列必须是单数形式。