Ruby on rails Rails-指向同一表的列
我有一个包含表Ruby on rails Rails-指向同一表的列,ruby-on-rails,database,model,rails-activerecord,Ruby On Rails,Database,Model,Rails Activerecord,我有一个包含表容器和端口的数据库 containers表有两列pol_id和pod_id,这两列都指向ports表。ports表有一个id列 我曾尝试在迁移中使用属于/references,但它没有提供这样的灵活性 此外,我对为此配置模型感到有点困惑。在创建迁移时,您可以使用外键选项自定义外键: t.references(:pol, foreign_key: { to_table: :ports }) 在您的模型中,您需要告诉ActiveRecord关联指向哪个类: class Contain
容器和端口的数据库
containers
表有两列pol_id
和pod_id
,这两列都指向ports
表。ports
表有一个id
列
我曾尝试在迁移中使用属于/references
,但它没有提供这样的灵活性
此外,我对为此配置模型感到有点困惑。在创建迁移时,您可以使用外键
选项自定义外键:
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
在容器和端口模型中显示代码我认为您只是想在“属于”关联中指定外键。以下是一个很好的模型配置答案:请注意,“属于”在迁移中只是引用的别名,因此同样适用。