什么在Ruby on Rails 3中创建了FOREIGN KEY约束?

我知道默认情况下会创建id字段,还需要: PRIMARY KEY ( id )

外键怎么样?

我有ShopsProducts表以及以下协会:

 Shop: has_many :products Product: belongs_to :shop 

Product我还有:

 t.integer "shop_id" 

这意味着是外键,还有:

 add_index("products", "shop_id") 

但是,如果我导出数据库,我只看到:

 KEY `index_products_on_shop_id` (`shop_id`) 

我该怎么做才能添加

 FOREIGN KEY (`shop_id`) REFERENCES Shop(`id`) 

您可以使用外国人 gem来为您的应用程序添加外键。 要开始,请将以下内容添加到Gemfile

 gem "foreigner" 

之后,您可以轻松地在迁移中添加外键,如下所示:

 add_foreign_key :products, :shops 

这会将product.shop_id的外来添加到shop.id 有关更多选项(如不同命名的键或自引用表),请参阅文档。