Die derzeit akzeptierte Antwort darauf ist nicht wirklich genau, da sie keinen Datenbank-Fremdschlüssel hinzufügt. Es werden nur Integer-Spalten hinzugefügt.
In Rails 4.2.x , ist der aktuelle Ansatz:
http://guides.rubyonrails.org/active_record_migrations.html#foreign-keys
Erstellen Sie eine Migration:
rails generate migration migration_name
Für vorhandene Spalten , fügen Sie bei der Migration die Fremdschlüssel wie folgt hinzu:
class MigrationName < ActiveRecord::Migration
def change
add_foreign_key :business_hours, :businesses
add_foreign_key :businesses, :users
end
end
Für Rails 4.x oder wenn Sie eine neue Spalte hinzufügen und möchten, dass es sich um einen Fremdschlüssel handelt, können Sie dies tun, wobei Sie wahrscheinlich auch den Index als wahr angeben möchten, aber das ist nicht Teil der Anforderung für den Fremdschlüssel:
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