我正在尝试从ActiveRecord模型中查询,让我们称之为user
:
has_many :projects
has_one :thing
has_many :things, through: :projects
我有兴趣找到projects
things
completed
或things
根本没有projects.includes(:thing).where(
things: { status: :complete }
).or(
things: { id: nil }
)
的所有projects.includes(:thing).where(
things: [
{ status: :complete },
{ id: nil }
]
)
。
几次尝试:
query = projects.includes(:thing)
query.where(things: {id: nil}) & query.where(things: {status: :complete})
或
{{1}}
如果可能的话,我更愿意在没有SQL的情况下实现这一点,即使它是这样的:
{{1}}
答案 0 :(得分:0)
所以这可能适用于您,也可能不适合您,但请尝试
query = projects.includes(:thing) query.where(things:{id:nil})。join(query.where(things:{status :: complete}))
我自己无法对此进行测试,但我真的很好奇它是否真的会将两个查询结合在一起。我稍后会玩它