aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2016-06-13 01:04:33 +0900
committerRyuta Kamizono <kamipo@gmail.com>2016-06-13 01:13:54 +0900
commit681a0a0299500024635e790c1ceb2da281652444 (patch)
treeffcd0257d826c89ed1d07bd18f25fc556a142407 /activerecord/lib
parent8a39123d5dd11dcc63e8f1a915cf66fa0e2cf9a3 (diff)
downloadrails-681a0a0299500024635e790c1ceb2da281652444.tar.gz
rails-681a0a0299500024635e790c1ceb2da281652444.tar.bz2
rails-681a0a0299500024635e790c1ceb2da281652444.zip
Fix `calculate` with a string value in `from` and eager loading
`construct_relation_for_association_calculations` pass a string value to `construct_join_dependency` when setting a string value in `from`. It should not pass a string value, but always `joins_values`. Related #14834, #19452. Fixes #24193.
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/relation/finder_methods.rb10
1 files changed, 1 insertions, 9 deletions
diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb
index 87eea8277a..882605de31 100644
--- a/activerecord/lib/active_record/relation/finder_methods.rb
+++ b/activerecord/lib/active_record/relation/finder_methods.rb
@@ -398,15 +398,7 @@ module ActiveRecord
end
def construct_relation_for_association_calculations
- from = arel.froms.first
- if Arel::Table === from
- apply_join_dependency(self, construct_join_dependency(joins_values))
- else
- # FIXME: as far as I can tell, `from` will always be an Arel::Table.
- # There are no tests that test this branch, but presumably it's
- # possible for `from` to be a list?
- apply_join_dependency(self, construct_join_dependency(from))
- end
+ apply_join_dependency(self, construct_join_dependency(joins_values))
end
def apply_join_dependency(relation, join_dependency)