命名范围where where和where.not

时间:2014-12-18 21:11:54

标签: ruby-on-rails scope

scope :active_without_owner, -> { where(active: true, role: 'owner') }

返回角色设置为“所有者”的活跃用户。

我无法弄清楚使用“所有者”以外的角色返回活跃用户的语法。

我试过了

scope :active_without_owner, -> { where(active: true, not(role: 'owner')) }

以及许多其他组合...

1 个答案:

答案 0 :(得分:3)

这将有效:

scope :active_without_owner, -> { where(active: true).where.not(role: 'owner')) }

我稍微改了一下,然后这样做,这样你就可以重用active

scope :active, -> { where(active: true) }
scope :active_with_owner, -> { active.where(role: 'owner') }
scope :active_without_owner, -> { active.where.not(role: 'owner')) }