【问题标题】:How can I associate two models where column values match?如何关联列值匹配的两个模型?
【发布时间】:2015-01-28 17:03:58
【问题描述】:

假设我有两个模型

模型A:idunique_idcreated_atupdated_at

型号B:idmodel_a_unique_idcreated_atupdated_at

那些唯一的 id 是字符串。

如何使用这样的列来关联这些列中的值?它们之间存在 1:n 的关系。我确实尝试过用谷歌搜索,但结果是空的。

编辑:当然我指的是记录。

【问题讨论】:

  • 所以你想要一个关系,其中 ModelA has_many ModelB 和 ModelB belongs_to ModelA?

标签: ruby-on-rails ruby database activerecord foreign-keys


【解决方案1】:

你应该可以做到:

class A
  has_many :bs, foreign_key: :model_a_unique_id, primary_key: :unique_id
end

class B
  belongs_to :a, foreign_key: :model_a_unique_id, primary_key: :unique_id
end

【讨论】:

    【解决方案2】:

    假设您使用的是 MySQL,您想使用 join。您可以使用以下查询来合并两个表的列。

    SELECT * FROM ModelA AS a 
        JOIN ModelB AS b ON a.unique_id = b.model_a_unique_id
    

    阅读更多关于MySQL Joins here

    【讨论】:

    • 我可以做到这一点。但我有兴趣使用类似 belongs_to :model_a 之类的东西来关联记录,其中:'model_a. unique_id = model_a。 model_a_unique_id' - 有没有办法做到这一点?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多