2013-03-12 64 views
1

想要進行rails遷移,但我希望列名是external_id之類的東西,但我不想使用外部模型。我認爲,默認情況下,每當看到_id作爲後綴它尋找外鍵關聯,如果它不存在遷移被取消。 這有什麼解決方案。我有帶_id後綴的rails遷移列名稱

def self.up 
    create_table :external_mappings do |t| 
     t.string :external_name 
     t.integer :external_id 

     t.timestamps 
    end 
    end 

感謝您的幫助


當我讓t.integer:外部ID遷移工作。這讓我覺得external_id正在尋找foreiegn的關鍵參考,有沒有什麼辦法可以壓制foriegn的關鍵參考。我正在使用rails 2.3.5

回答

0

你也可以給任意一列_id名稱和引用外鍵而沒有_id也是如此,隨時可以繼續。這只是Rails依賴目標文件的約定,但沒有任何問題,它可以用不同的方式定義。

0

不,不會因爲不存在的模型而取消任何遷移。

+0

當我做t.integer:external_id – 2013-03-12 19:45:56

0

我不知道原始海報是否使用腳手架和「參考」類型創建了新模型。如果是這種情況,那麼在嘗試創建外鍵期間遷移將失敗。

否則,如果它只是一個整數,將_id添加到可接受的列名的末尾沒有任何問題。