0
我有一個數據庫,其中有表containers
和ports
。Rails - 指向同一個表的列
containers
表有兩列pol_id
和pod_id
,它們都指向ports
表。 ports
表具有id
列。
我已經嘗試在遷移中使用belongs_to/references
,但它不提供這種靈活性。
另外,我對配置這個模型有些困惑。
我有一個數據庫,其中有表containers
和ports
。Rails - 指向同一個表的列
containers
表有兩列pol_id
和pod_id
,它們都指向ports
表。 ports
表具有id
列。
我已經嘗試在遷移中使用belongs_to/references
,但它不提供這種靈活性。
另外,我對配置這個模型有些困惑。
創建遷移時,您可以使用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
請注意,遷移中的belongs_to只是引用的別名同樣適用。 – max
在您的容器和端口模型中顯示代碼 –
我認爲您想要在您的belongs_to關聯中指定foreign_key。 – Mathiou
下面是你的模型配置的一個很好的答案:https://stackoverflow.com/questions/25047920/rails-belongs-to-with-custom-column-name – Mathiou