关系是:
Account has many Groups
Group has many Users
我需要 Account 中的一种方法来获取所有用户(每个组的用户),然后应用用户范围:
account.rb
def users
self.groups.map(&:users).flatten # Cannot apply User's scope
end
user.rb
scope :foo, ->{ where(bar: 'baz' }
我想我必须返回一个 Mongoid::Criteriadef users
而不是一个数组,所以我可以做account.users.foo
. 我怎样才能做到这一点?
谢谢!
PS:我试过(应该在 ActiveRecord 中工作):
def users
ids=self.groups.map(&:users).flatten.map(&:id)
User.where(id: ids)
end