aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activerecord/lib/active_record/relational_calculations.rb17
1 files changed, 5 insertions, 12 deletions
diff --git a/activerecord/lib/active_record/relational_calculations.rb b/activerecord/lib/active_record/relational_calculations.rb
index 5e5ea9e0c1..f42ffe0460 100644
--- a/activerecord/lib/active_record/relational_calculations.rb
+++ b/activerecord/lib/active_record/relational_calculations.rb
@@ -165,19 +165,12 @@ module ActiveRecord
column ? column.type_cast(value) : value
end
- def get_projection_name_from_chained_relations
- name = nil
- if @relation.respond_to?(:projections) && @relation.projections.present?
- name = @relation.send(:select_clauses).join(', ')
- elsif @relation.respond_to?(:relation) && relation = @relation.relation
- while relation.respond_to?(:relation)
- if relation.respond_to?(:projections) && relation.projections.present?
- name = relation.send(:select_clauses).join(', ')
- end
- relation = relation.relation
- end
+ def get_projection_name_from_chained_relations(relation = @relation)
+ if relation.respond_to?(:projections) && relation.projections.present?
+ relation.send(:select_clauses).join(', ')
+ elsif relation.respond_to?(:relation)
+ get_projection_name_from_chained_relations(relation.relation)
end
- name
end
end