2013-07-19 43 views
0

我有一个返回时间表记录的模块。当提供范围参数时,items方法会限制时间表,因此它只返回特定的时间表。我如何在另一个查询中使用该查询的结果?这是关于在super.where(user_id: team_users)查询中使用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

对于活动记录,您可以通过array of ids/values。为了您的查询,你可以尝试做这样的事情:

team_users = User.from_team(@manager) 
super.where(user_id: team_users.collect{|u| u.id}) 
+0

辉煌,谢谢! – John