Ruby on Rails 向表添加参考列

示例

要将引用添加team到users表,请运行以下命令:

$ rails generate migration AddTeamRefToUsers team:references

这将产生以下迁移:

class AddTeamRefToUsers < ActiveRecord::Migration[5.0]
  def change
    add_reference :users, :team, foreign_key: true
  end
end

该迁移将team_id在users表中创建一列。

如果要添加适当的内容,index并foreign_key在添加的列上,将命令更改为rails generate migration AddTeamRefToUsers team:references:index。这将产生以下迁移:

class AddTeamRefToUsers < ActiveRecord::Migration
  def change
    add_reference :users, :team, index: true
    add_foreign_key :users, :teams
  end
end

如果你想命名比Rails的自动生成等参考列,以下内容添加到您的迁移:(例如:你可能想打电话给User谁创造了Post如Author在Post表)

class AddAuthorRefToPosts < ActiveRecord::Migration
  def change
    add_reference :posts, :author, references: :users, index: true
  end
end