To add a reference to a team
to the users
table, run this command:
$ rails generate migration AddTeamRefToUsers team:references
This generates the following migration:
class AddTeamRefToUsers < ActiveRecord::Migration[5.0]
def change
add_reference :users, :team, foreign_key: true
end
end
That migration will create a team_id
column in the users
table.
If you want to add an appropriate index
and foreign_key
on the added column, change the command to rails generate migration AddTeamRefToUsers team:references:index
. This will generate the following migration:
class AddTeamRefToUsers < ActiveRecord::Migration
def change
add_reference :users, :team, index: true
add_foreign_key :users, :teams
end
end
If you want to name your reference column other than what Rails auto generates, add the following to your migration: (E.g.: You might want to call the User
who created the Post
as Author
in the Post
table)
class AddAuthorRefToPosts < ActiveRecord::Migration
def change
add_reference :posts, :author, references: :users, index: true
end
end