diff options
Diffstat (limited to 'activerecord/lib/active_record/calculations.rb')
-rw-r--r-- | activerecord/lib/active_record/calculations.rb | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/calculations.rb b/activerecord/lib/active_record/calculations.rb index 774926f409..59a7647213 100644 --- a/activerecord/lib/active_record/calculations.rb +++ b/activerecord/lib/active_record/calculations.rb @@ -144,11 +144,12 @@ module ActiveRecord protected def construct_calculation_sql(aggregate, aggregate_alias, options) + scope = scope(:find) sql = ["SELECT #{aggregate} AS #{aggregate_alias}"] sql << ", #{options[:group_field]} AS #{options[:group_alias]}" if options[:group] sql << " FROM #{table_name} " - add_joins!(sql, options) - add_conditions!(sql, options[:conditions]) + add_joins!(sql, options, scope) + add_conditions!(sql, options[:conditions], scope) sql << " GROUP BY #{options[:group_field]}" if options[:group] sql << " HAVING #{options[:having]}" if options[:group] && options[:having] sql << " ORDER BY #{options[:order]}" if options[:order] |