【发布时间】:2024-01-19 17:46:02
【问题描述】:
我需要创建困难的查询,但我不明白如何以更有效的方式做到这一点。
情况如下:
class Owner
has_many: A
end
class A
has_many: C
end
# category: string
class B
has_many: C
end
# flag: boolean
class C
belongs_to: A
belongs_to: B
scope :filtered, -> { where(b: { category: 'smth' }) }
end
我需要获取属于特定所有者的所有 A 记录,但以下人员除外:
a.c.filtered.last.flag == true
a.c.filtered 可以为空,a.c 可以为空,在这种情况下我不需要排除这样的 A 记录。
当然,我可以在for循环中这样做,但是我的记录太多,我认为这不是一种有效的方式。
【问题讨论】:
-
目前还不清楚您真正希望从查询中得到什么。您能否使用实际工作的模型改进示例,添加您正在寻找的数据和输出示例?
标签: sql ruby-on-rails rails-activerecord