2014-02-06 23 views
0

我有一個名爲MyModelA和MyModelB紅寶石模型如下圖所示如何讓Rails在數據庫中插入一個外鍵約束?

class MyModelA < ActiveRecord::Base 
    belongs_to :mymodelb 

    class MyModelB < ActiveRecord::Base 
    # Blah Blah Blah 

當我用耙子DB創建數據庫:創建命令,我注意到,MYMODELA表沒有在其上的外鍵約束。我手動插入這樣的:

ALTER TABLE MYMODELA ADD FOREIGN KEY (MYMODELB_ID) REFERENCES MYMODELB(ID); 

我如何定義我的模型,使得該DB外鍵約束會自動創建有沒有我後來手動添加呢?

回答

-1

產生遷移:

軌摹遷移AddmymodelbidToMyModelA mymodelb_id:整數

去遷移文件,並添加

add_index:mymodela,:mymodelb_id

只之間兩端條款

運行rake:db:migrate

+1

這雖然不會創建數據庫中的外鍵添加一個foreign_key。 –

1

Rails沒有提供遷移助手來添加foreign_key。但是你可以使用foreigner寶石

你做到這一點使用外國人寶石

create_table :products do |t| 
    t.string :name 
    t.integer :factory_id 
    t.foreign_key :factories 
    end