2017-07-01 42 views
0

我有一個數據庫,其中有表containersportsRails - 指向同一個表的列

containers表有兩列pol_idpod_id,它們都指向ports表。 ports表具有id列。

我已經嘗試在遷移中使用belongs_to/references,但它不提供這種靈活性。

另外,我對配置這個模型有些困惑。

+0

在您的容器和端口模型中顯示代碼 –

+0

我認爲您想要在您的belongs_to關聯中指定foreign_key。 – Mathiou

+0

下面是你的模型配置的一個很好的答案:https://stackoverflow.com/questions/25047920/rails-belongs-to-with-custom-column-name – Mathiou

回答

0

創建遷移時,您可以使用foreign_key選項自定義外鍵:

t.references(:pol, foreign_key: { to_table: :ports }) 

在你的模型,你需要告訴ActiveRecord的是什麼類的關聯點:

class Container 
    belongs_to :pol, class_name: "Port" 
end 

你創建反向關聯時還需要提供外鍵:

class Port 
    has_many :containers_as_pol, class_name: "Container", foreign_key: "pol_id" 
end 
+0

請注意,遷移中的belongs_to只是引用的別名同樣適用。 – max

相關問題