aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/associations.rb')
-rw-r--r--activerecord/lib/active_record/associations.rb22
1 files changed, 5 insertions, 17 deletions
diff --git a/activerecord/lib/active_record/associations.rb b/activerecord/lib/active_record/associations.rb
index d0d1eeec45..41f882743c 100644
--- a/activerecord/lib/active_record/associations.rb
+++ b/activerecord/lib/active_record/associations.rb
@@ -2239,25 +2239,13 @@ module ActiveRecord
protected
- def table_alias_for(reflection)
- name = pluralize(reflection.name)
+ def table_alias_for(reflection, join = false)
+ name = alias_tracker.pluralize(reflection.name)
name << "_#{parent_table_name}"
- name << "_join" if reflection != self.reflection
+ name << "_join" if join
name
end
- def pluralize(table_name)
- ActiveRecord::Base.pluralize_table_names ? table_name.to_s.pluralize : table_name
- end
-
- def table_name_and_alias_for(table_name, table_alias)
- "#{table_name} #{table_alias if table_name != table_alias}".strip
- end
-
- def table_name_and_alias
- table_name_and_alias_for(table_name, aliased_table_name)
- end
-
def interpolate_sql(sql)
instance_eval("%@#{sql.gsub('@', '\@')}@", __FILE__, __LINE__)
end
@@ -2271,7 +2259,7 @@ module ActiveRecord
@tables = through_reflection_chain.map do |reflection|
aliased_table_name = alias_tracker.aliased_name_for(
reflection.table_name,
- table_alias_for(reflection)
+ table_alias_for(reflection, reflection != self.reflection)
)
table = Arel::Table.new(
@@ -2284,7 +2272,7 @@ module ActiveRecord
if reflection.macro == :has_and_belongs_to_many
aliased_join_table_name = alias_tracker.aliased_name_for(
reflection.options[:join_table],
- table_alias_for(reflection)
+ table_alias_for(reflection, true)
)
join_table = Arel::Table.new(