【问题标题】:Rails: How to include all associations with where conditionRails:如何包含与 where 条件的所有关联
【发布时间】:2022-10-23 22:25:02
【问题描述】:

我正在使用 Rails 6.1.4,并且我有一个 Contact 模型,它与 Client 模型具有 has_one 关系。客户端有一个状态列。 但是,并非所有联系人都有客户,但我想返回客户状态为活动的所有联系人,包括没有客户的联系人。 我尝试了这个查询,但它只返回与客户端关联的对象。

@contacts = @contacts.eager_load([:client, :organization, :addresses]).where("clients.status = 'Active'").all

有人可以帮我查询吗?

【问题讨论】:

  • .where(clients: {status: [nil,'Active']}) 这将创建一个 where 子句“在哪里(clients.status 为 NULL 或 clients.status = 'ACTIVE')”

标签: ruby-on-rails ruby postgresql activerecord


【解决方案1】:

性能不是问题的小型数据集的无聊方式:

  • 在没有客户端的情况下获取所有联系人
  • 获取存档客户端的所有联系人(就像现在一样)
  • 将这两者混合在一起,这将创建一个数组,默认情况下是唯一的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 2022-01-04
    • 1970-01-01
    相关资源
    最近更新 更多