Module: Autoscope::ActiveRecordMethods::ClassMethods

Defined in:
lib/autoscope/active_record_methods.rb

Instance Method Summary collapse

Instance Method Details

#add_scopes(params, scope = self.all) ⇒ ActiveRecord::Relation

adds any available scopes to the scope passed in

Examples:

class MyController < ActionController::Base
  # GET /my_resources.json
  def index
    @my_resources = MyResource.add_scopes(params)
  end
end

Parameters:

  • params (Hash)
  • scope (ActiveRecord::Relation) (defaults to: self.all)

Returns:

  • (ActiveRecord::Relation)


38
39
40
41
42
43
44
45
46
47
48
# File 'lib/autoscope/active_record_methods.rb', line 38

def add_scopes(params, scope = self.all)
  params = params.with_indifferent_access

  # add any type parameters
  scope = self.add_type_filter(params, scope)
  # add our static scopes
  scope = self.add_static_scopes(params, scope)
  scope = self.add_dynamic_scopes(params, scope)
  scope = self.add_pagination(params, scope)
  scope
end

#scope_definitionHash

Scope definition

Returns:

  • (Hash)

    Definition



54
55
56
57
58
59
60
# File 'lib/autoscope/active_record_methods.rb', line 54

def scope_definition
  self.stored_scope_definition.clone.tap do |ret|
    self.scope_class_methods.each do |meth|
      ret[meth] = self.get_scope_parameters(self.method(meth))
    end
  end
end