Specially useful for
has_and_belongs_to_many relation, you can manually create a join table using the
Suppose you have two models
Proyects, and you'd like to associate them using a
has_and_belongs_to_many relation. You need a join table to associate instances of both classes.
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
The actual name of the table needs to follow this convention: the model which alphabetically precedes the other must go first. Project preceds Tags so the name of the table is projects_tags.
Also since the purpose of this table is to route the association between the instances of two models, the actual id of every record in this table is not necessary. You specify this by passing
Finally, as is convention in Rails, the table name must be the compound plural form of the individual models, but the column of the table must be in singular form.