Module: GemExtensions::ActiveRecord::Association

Extended by:
ActiveSupport::Concern
Defined in:
lib/gem_extensions/active_record/association.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#disable_joinsObject (readonly)

Returns the value of attribute disable_joins.



8
9
10
# File 'lib/gem_extensions/active_record/association.rb', line 8

def disable_joins
  @disable_joins
end

Instance Method Details

#association_scopeObject



24
25
26
27
28
29
30
31
32
33
# File 'lib/gem_extensions/active_record/association.rb', line 24

def association_scope
  if klass
    @association_scope ||= # rubocop:disable Gitlab/ModuleWithInstanceVariables
      if disable_joins
        ::GemExtensions::ActiveRecord::DisableJoins::Associations::AssociationScope.scope(self)
      else
        super
      end
  end
end

#initialize(owner, reflection) ⇒ Object



10
11
12
13
14
# File 'lib/gem_extensions/active_record/association.rb', line 10

def initialize(owner, reflection)
  super

  @disable_joins = @reflection.options[:disable_joins] || false
end

#scopeObject



16
17
18
19
20
21
22
# File 'lib/gem_extensions/active_record/association.rb', line 16

def scope
  if disable_joins
    ::GemExtensions::ActiveRecord::DisableJoins::Associations::AssociationScope.create.scope(self)
  else
    super
  end
end