Ruby on Rails Aggiungi una colonna di riferimento a una tabella


Esempio

Per aggiungere un riferimento a un team alla tabella users , esegui questo comando:

$ rails generate migration AddTeamRefToUsers team:references

Questo genera la seguente migrazione:

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

Quella migrazione creerà una colonna team_id nella tabella degli users .

Se si desidera aggiungere un index appropriato e una foreign_key nella colonna aggiunta, modificare il comando in rails generate migration AddTeamRefToUsers team:references:index . Questo genererà la seguente migrazione:

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

Se si desidera denominare la colonna di riferimento diversa da quella che viene generata automaticamente da Rails, aggiungere quanto segue alla migrazione: (Ad esempio, è possibile chiamare l' User che ha creato il Post come Author nella tabella Post )

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