class Babik::Selection::SelectRelatedSelection

Abstraction of a selection used in select_related operation

Constants

RELATIONSHIP_SEPARATOR

Attributes

association_path[R]
id[R]
model[R]
selection_path[R]
target_model[R]

Public Class Methods

new(model, selection_path) click to toggle source
# File lib/babik/queryset/lib/selection/select_related_selection.rb, line 21
def initialize(model, selection_path)
  @model = model
  @selection_path = selection_path.dup
  @association_path = selection_path.to_s.split(RELATIONSHIP_SEPARATOR)
  @id = @association_path.join('__')

  _initialize_associations
  @target_model = @association_chain.target_model
end

Public Instance Methods

_initialize_associations() click to toggle source
# File lib/babik/queryset/lib/selection/select_related_selection.rb, line 31
def _initialize_associations
  @association_chain = Babik::Association::SelectRelatedAssociationChain.new(@model, @association_path, @selection_path)
  @association_joiner = Babik::QuerySet::Join::AssociationJoiner.new(@association_chain.associations)
end