2010-12-10 21 views
7

據我所知,默認情況下,id字段已創建,還有:PRIMARY KEY ( id )什麼在Ruby on Rails 3中創建FOREIGN KEY約束?

外鍵怎麼樣?

我有ShopsProducts表和以下關聯:

Shop: has_many :products 
Product: belongs_to :shop 

Product我也有:

t.integer "shop_id" 

其目的是要爲外鍵,也:

add_index("products", "shop_id") 

但是,如果我導出我看到的數據庫LY:

KEY `index_products_on_shop_id` (`shop_id`) 

我應該怎麼才能做補充

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

回答

16

您可以使用foreigner gem將外鍵添加到您的應用程序。要開始添加以下到您的Gemfile

gem "foreigner" 

之後,你可以很容易地遷移添加外鍵,像這樣:

add_foreign_key :products, :shops 

這從product.shop_id添加一個陌生shop.id。請參閱文檔以獲取更多選項,如不同名稱的鍵或自引用表。