Class: ActiveRecord::Associations::AliasTracker

Inherits:
Object
  • Object
show all
Defined in:
lib/motor/active_record_utils/active_record_filter.rb

Instance Method Summary collapse

Constructor Details

#initialize(connection, aliases) ⇒ AliasTracker

Returns a new instance of AliasTracker.



51
52
53
54
55
# File 'lib/motor/active_record_utils/active_record_filter.rb', line 51

def initialize(connection, aliases)
  @aliases    = aliases
  @connection = connection
  @relation_trail = {}
end

Instance Method Details

#aliased_table_for_relation(trail, arel_table, &block) ⇒ Object



57
58
59
60
61
62
63
64
# File 'lib/motor/active_record_utils/active_record_filter.rb', line 57

def aliased_table_for_relation(trail, arel_table, &block)
  @relation_trail[trail] ||=
    if Rails::VERSION::MAJOR >= 6
      aliased_table_for(arel_table, &block)
    else
      aliased_table_for(arel_table.name, trail.last, nil)
    end
end