我有一个返回时间表记录的模块。当提供范围参数时,items方法对时间表进行范围限定,因此它只返回特定的时间表。如何在另一个查询中使用该查询的结果?它是关于在team_users
查询中使用super.where(user_id: team_users)
。
module Collections
class TimesheetCollection < Collection
module TeamScope
def items
if params[:scope].present?
team_users = User.from_team(@manager)
super.where(user_id: team_users)
else
super
end
end
end
attr_reader :ability, :params
def initialize(ability, params, manager)
@ability = ability
@params = params
@manager = manager
extend TeamScope
end
def items
Timesheet.unscoped
end
def paginated
extend Pagination
self
end
end
end
答案 0 :(得分:0)
对于有效记录,您可以传递array of ids/values。对于您的查询,您可以尝试执行以下操作:
team_users = User.from_team(@manager)
super.where(user_id: team_users.collect{|u| u.id})