class Bullet::Detector::NPlusOneQuery

def call_association(object, associations)

if it is, keeps this unpreload associations and caller.
then, it checks if this associations call is unpreload.
first, it keeps this method call for object.association.
executed when object.assocations is called.
def call_association(object, associations)
  return unless Bullet.start?
  return unless object.id
  add_call_object_associations(object, associations)
  Bullet.debug("Detector::NPlusOneQuery#call_association", "object: #{object.bullet_ar_key}, associations: #{associations}")
  if conditions_met?(object.bullet_ar_key, associations)
    Bullet.debug("detect n + 1 query", "object: #{object.bullet_ar_key}, associations: #{associations}")
    create_notification caller_in_project, object.class.to_s, associations
  end
end