A resposta atualmente aceita sobre isso não é realmente precisa, pois não adiciona uma chave estrangeira de banco de dados. É apenas adicionar colunas inteiras.
No Rails 4.2.x , a abordagem atual é:
http://guides.rubyonrails.org/active_record_migrations.html#foreign-keys
Crie uma migração:
rails generate migration migration_name
Para colunas existentes , na migração adicione as chaves estrangeiras assim:
class MigrationName < ActiveRecord::Migration
def change
add_foreign_key :business_hours, :businesses
add_foreign_key :businesses, :users
end
end
Para Rails 4.x ou se você estiver adicionando uma nova coluna e quiser que seja uma chave estrangeira, você pode fazer isso, onde provavelmente também deseja especificar o índice como verdadeiro, mas isso não faz parte do requisito para a chave estrangeira:
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