目前对此接受的答案并不准确,因为它没有添加数据库外键。它只是添加整数列。
在Rails 4.2.x中,当前的方法是:
http://guides.rubyonrails.org/active_record_migrations.html#foreign-keys
创建迁移:
rails generate migration migration_name
对于现有列,在迁移中添加如下外键:
class MigrationName < ActiveRecord::Migration
def change
add_foreign_key :business_hours, :businesses
add_foreign_key :businesses, :users
end
end
对于Rails 4.x,或者如果您要添加新列并希望它成为外键,您可以这样做,您可能还希望将索引指定为 true,但这不是外键要求的一部分:
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