Rails - 指向同一个表的列

时间:2017-07-01 10:20:22

标签: ruby-on-rails database model rails-activerecord

我有一个包含表containersports的数据库。

containers表有两列pol_idpod_id,它们都指向ports表。 ports表格有id列。

我尝试在迁移中使用belongs_to / references,但它没有提供这样的灵活性。

另外,我对为此配置模型感到有些困惑。

1 个答案:

答案 0 :(得分: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