関係は次のとおりです。
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' }
def users
配列の代わりにMongoid::Criteria を返さなければならないと思うので、そうすることができますaccount.users.foo
。どうやってやるの?
ありがとう!
PS: 試してみました (ActiveRecord で動作するはずです):
def users
ids=self.groups.map(&:users).flatten.map(&:id)
User.where(id: ids)
end