获取模型的所有记录,其中其关联不是无效的,并且协会符合某些条件



我正在使用Rails 3.1.0

我有两个模型A和B。A has_one b,但b可以为null。B属于A.B有一个布尔田,称为"可见"。

我想获得所有具有"可见"设置为true的非挂钩B和A B的记录。

做出此查询的简洁有效的方法是什么?

我到目前为止所做的:

我创建了一个范围,该范围与非挂钩B的A(我认为)。

范围:has_b,include(:b)。where(b.arel_table [:id] .not_eq(nil))

有没有办法将可见的==真实条件链接到此范围?

A.includes(:bs).where(:bs => { :visible => true })

Zach Kemp几乎是正确的

所以,在范围:

scope as_with_visible_bs includes(:bs)
  .where(B.arel_table[:id].not_eq(nil))
  .where(:bs => { :visible => true })

在此处查看"加入"部分。此查询应该做您需要的事情:

A.joins(:bs).where(:bs => { :visible => true })

相关内容

  • 没有找到相关文章

最新更新