class Bullet::Detector::Association
def add_call_object_associations(object, associations)
def add_call_object_associations(object, associations) return unless Bullet.start? return if !Bullet.n_plus_one_query_enable? && !Bullet.unused_eager_loading_enable? return unless object.id Bullet.debug("Detector::Association#add_call_object_associations", "object: #{object.bullet_ar_key}, associations: #{associations}") call_object_associations.add(object.bullet_ar_key, associations) end
def add_object_associations(object, associations)
def add_object_associations(object, associations) return unless Bullet.start? return if !Bullet.n_plus_one_query_enable? && !Bullet.unused_eager_loading_enable? return unless object.id Bullet.debug("Detector::Association#add_object_associations", "object: #{object.bullet_ar_key}, associations: #{associations}") object_associations.add(object.bullet_ar_key, associations) end
def call_object_associations
e.g. { "Post:1" => [:comments] }
that object.associations is called.
call_object_associations keep the object relationships
def call_object_associations Thread.current[:bullet_call_object_associations] end
def eager_loadings
that the associations are preloaded by find :include.
eager_loadings keep the object relationships
def eager_loadings Thread.current[:bullet_eager_loadings] end
def impossible_objects
if find collection returns only one object, then the object is impossible object,
Notice: impossible_objects are not accurate,
e.g. { Post => ["Post:1", "Post:2"] }
that the objects may not cause N+1 query.
impossible_objects keep the class to objects relationships
def impossible_objects Thread.current[:bullet_impossible_objects] end
def object_associations
the object_associations keep all associations that may be or may no be
e.g. { "Post:1" => [:comments] }
that the object has many associations.
object_associations keep the object relationships
def object_associations Thread.current[:bullet_object_associations] end
def possible_objects
that the objects may cause N+1 query.
possible_objects keep the class to object relationships
def possible_objects Thread.current[:bullet_possible_objects] end