method
aliased_table_for
v6.1.3.1 -
Show latest stable
- Class:
ActiveRecord::Associations::AliasTracker
aliased_table_for(arel_table, table_name = nil)public
No documentation available.
# File activerecord/lib/active_record/associations/alias_tracker.rb, line 54
def aliased_table_for(arel_table, table_name = nil)
table_name ||= arel_table.name
if aliases[table_name] == 0
# If it's zero, we can have our table_name
aliases[table_name] = 1
arel_table = arel_table.alias(table_name) if arel_table.name != table_name
else
# Otherwise, we need to use an alias
aliased_name = @connection.table_alias_for(yield)
# Update the count
count = aliases[aliased_name] += 1
aliased_name = "#{truncate(aliased_name)}_#{count}" if count > 1
arel_table = arel_table.alias(aliased_name)
end
arel_table
end