Jawaban yang saat ini diterima tentang ini tidak terlalu akurat karena tidak menambahkan kunci asing basis data. Itu hanya menambahkan kolom bilangan bulat.
Di Rel 4.2.x , pendekatan saat ini adalah:
http://guides.rubyonrails.org/active_record_migrations.html#foreign-keys
Buat migrasi:
rails generate migration migration_name
Untuk kolom yang ada , dalam migrasi tambahkan kunci asing seperti ini:
class MigrationName < ActiveRecord::Migration
def change
add_foreign_key :business_hours, :businesses
add_foreign_key :businesses, :users
end
end
Untuk Rel 4.x atau jika Anda menambahkan kolom baru dan ingin itu menjadi kunci asing, Anda dapat melakukan ini, di mana Anda mungkin juga ingin menentukan indeks sebagai true, tetapi itu bukan bagian dari persyaratan untuk kunci asing:
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