提交 33a06829 编写于 作者: S Santiago Pastorino

Merge pull request #17754 from eileencodes/refactor-aliased_table_for

Combine aliased_table_for and aliased_name_for
......@@ -57,20 +57,10 @@ def initialize(connection, aliases)
end
def aliased_table_for(table_name, aliased_name)
table_alias = aliased_name_for(table_name, aliased_name)
if table_alias == table_name
Arel::Table.new(table_name)
else
Arel::Table.new(table_name).alias(table_alias)
end
end
def aliased_name_for(table_name, aliased_name)
if aliases[table_name].zero?
# If it's zero, we can have our table_name
aliases[table_name] = 1
table_name
Arel::Table.new(table_name)
else
# Otherwise, we need to use an alias
aliased_name = connection.table_alias_for(aliased_name)
......@@ -78,11 +68,12 @@ def aliased_name_for(table_name, aliased_name)
# Update the count
aliases[aliased_name] += 1
if aliases[aliased_name] > 1
table_alias = if aliases[aliased_name] > 1
"#{truncate(aliased_name)}_#{aliases[aliased_name]}"
else
aliased_name
end
Arel::Table.new(table_name).alias(table_alias)
end
end
......
......@@ -94,7 +94,7 @@ def self.walk_tree(associations, hash)
#
def initialize(base, associations, joins)
@alias_tracker = AliasTracker.create(base.connection, joins)
@alias_tracker.aliased_name_for(base.table_name, base.table_name) # Updates the count for base.table_name to 1
@alias_tracker.aliased_table_for(base.table_name, base.table_name) # Updates the count for base.table_name to 1
tree = self.class.make_tree associations
@join_root = JoinBase.new base, build(tree, base)
@join_root.children.each { |child| construct_tables! @join_root, child }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册