2015-04-23 107 views
2

我們有一種情況,其中表列名稱之一使用後綴「_id」。遷移代碼:防止從創建外鍵約束耙子遷移

create_table :companies do |t| 
    t.integer :ref_id 
    t.string :name 
end 

當運行分貝:遷移失敗,因爲鐵軌試圖創建REF_ID一個外鍵約束,結果發現沒有所謂的「裁判」表。在我們的例子中,「ref_id」不是外鍵。

有沒有辦法阻止rails爲該列創建外鍵約束?

+0

AFAIK不應該是你的情況。它從不發生。顯示您的完整遷移。 –

+0

它發生了,因爲我們有模式加gem,這使得rails自動創建外鍵約束。 – hudarsono

回答

2

看來你有一個schema_plus寶石。你可以這樣做:

create_table :companies do |t| 
    t.integer :ref_id, foreign_key: false 
    t.string :name 
end 
+0

非常感謝,確切地工作。 – hudarsono