The currently accepted answer on this isn't really accurate as it doesn't add a database foreign key. It's just adding integer columns.
In Rails 4.2.x, the current approach is:
http://guides.rubyonrails.org/active_record_migrations.html#foreign-keys
Create a migration:
rails generate migration migration_name
For existing columns, in the migration add the foreign keys like this:
class MigrationName < ActiveRecord::Migration
def change
add_foreign_key :business_hours, :businesses
add_foreign_key :businesses, :users
end
end
For Rails 4.x or if you're adding a new column and want it to be a foreign key you can do this, where you probably also want to specify the index as true, but that's not part of the requirement for the foreign key:
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
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…