【问题标题】:Add relation to a where clause将关系添加到 where 子句
【发布时间】:2019-02-28 00:05:58
【问题描述】:
Product.where(foo: true).map(&:my_has_one_relation_from_product)

我不确定这是否可行,但我希望 foo 返回一个集合而不是数组。

有什么办法可以做到这一点?

【问题讨论】:

  • 真的不清楚你在问什么。你能详细说明吗?可以举个具体的例子
  • 无论您在哪个模型上调用where,您都将访问该类型的集合。说产品has_one :producer,如果你想得到一个Producer对象的集合你需要使用Producer.wherejoin

标签: ruby-on-rails ruby has-many


【解决方案1】:
HasOneRelation.joins(:product).where(products: {foo: true})

从 has_one_relation 开始,您可以加入产品并仅按具有 foo: true 的产品进行过滤。我们正在寻找具有 foo 乘积的关系而不是找到 foo 乘积并获取其关系,这有点向后思考。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多