Aktuálně přijímaná odpověď na to není opravdu přesná, protože nepřidává cizí klíč databáze. Je to jen přidávání celých sloupců.
V Rails 4.2.x , aktuální přístup je:
http://guides.rubyonrails.org/active_record_migrations.html#foreign-keys
Vytvořte migraci:
rails generate migration migration_name
Pro stávající sloupce , při migraci přidejte cizí klíče takto:
class MigrationName < ActiveRecord::Migration
def change
add_foreign_key :business_hours, :businesses
add_foreign_key :businesses, :users
end
end
Pro Rails 4.x nebo pokud přidáváte nový sloupec a chcete, aby to byl cizí klíč, můžete to udělat, kde pravděpodobně také chcete zadat index jako true, ale to není součástí požadavku na cizí klíč:
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