Приетият в момента отговор на това не е наистина точен, тъй като не добавя външен ключ на базата данни. Това е просто добавяне на колони с цели числа.
ВRails 4.2.x , текущият подход е:
http://guides.rubyonrails.org/active_record_migrations.html#foreign-keys
Създайте миграция:
rails generate migration migration_name
Засъществуващи колони , в миграцията добавете външните ключове по следния начин:
class MigrationName < ActiveRecord::Migration
def change
add_foreign_key :business_hours, :businesses
add_foreign_key :businesses, :users
end
end
ЗаRails 4.x или ако добавяте нова колона и искате да е външен ключ, можете да направите това, където вероятно също искате да посочите индекса като true, но това не е част от изискването за външния ключ:
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