0

我有一个返回时间表记录的模块。当提供了范围参数时,items 方法限定了时间表,因此它只返回某些时间表。如何在另一个查询中使用该查询的结果?它是关于team_userssuper.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
4

1 回答 1

0

对于活动记录,您可以传入一个ids/values 数组。对于您的查询,您可以尝试执行以下操作:

team_users = User.from_team(@manager)
super.where(user_id: team_users.collect{|u| u.id})
于 2013-07-19T12:56:23.630 回答