Class: ActiveRecord::Relation

Inherits:
Object
  • Object
show all
Defined in:
lib/jit_preloader/active_record/relation.rb

Instance Method Summary collapse

Instance Method Details

#calculate_with_jit(*args) ⇒ Object



3
4
5
6
7
8
9
10
# File 'lib/jit_preloader/active_record/relation.rb', line 3

def calculate_with_jit(*args)
  if respond_to?(:proxy_association) && proxy_association.owner && proxy_association.owner.jit_n_plus_one_tracking
    ActiveSupport::Notifications.publish("n_plus_one_query",
                                         source: proxy_association.owner,
                                         association: "#{proxy_association.reflection.name}.#{args.first}")
  end
  calculate_without_jit(*args)
end

#exec_queries_with_jitObject



14
15
16
17
18
19
20
21
22
23
# File 'lib/jit_preloader/active_record/relation.rb', line 14

def exec_queries_with_jit
  exec_queries_without_jit.tap do |records|
    if limit_value != 1
      records.each{ |record| record.jit_n_plus_one_tracking = true }
      if jit_preload? || JitPreloader.globally_enabled?
        JitPreloader::Preloader.attach(records)
      end
    end
  end
end