Det för närvarande accepterade svaret på detta är inte riktigt korrekt eftersom det inte lägger till en främmande databasnyckel. Det är bara att lägga till heltalskolumner.
I Rails 4.2.x , det nuvarande tillvägagångssättet är:
http://guides.rubyonrails.org/active_record_migrations.html#foreign-keys
Skapa en migrering:
rails generate migration migration_name
För befintliga kolumner , i migreringen lägg till de främmande nycklarna så här:
class MigrationName < ActiveRecord::Migration
def change
add_foreign_key :business_hours, :businesses
add_foreign_key :businesses, :users
end
end
För Rails 4.x eller om du lägger till en ny kolumn och vill att det ska vara en främmande nyckel kan du göra detta, där du förmodligen också vill ange indexet som sant, men det är inte en del av kravet för den främmande nyckeln:
http://edgeguides.rubyonrails.org/active_record_migrations.html#creating-a-migration
class MigrationName < ActiveRecord::Migration
def change
add_reference :business_hours, :business, index: true, foreign_key: true
add_reference :businesses, :user, index: true, foreign_key: true
end
end