diff options
author | Andrew White <pixeltrix@users.noreply.github.com> | 2015-10-22 09:54:04 +0100 |
---|---|---|
committer | Andrew White <pixeltrix@users.noreply.github.com> | 2015-10-22 09:54:04 +0100 |
commit | f66b68173a11d0ef8f4bb6253386c15d031017ba (patch) | |
tree | c4e46cd8ae0b38303133f15965d46efb4c64110a /activerecord/lib/active_record | |
parent | 94db9b6f1dc0f03b36fda37b7ee914c594105e66 (diff) | |
parent | 4f21d42faaf12955fa0116306966d4ef09e62462 (diff) | |
download | rails-f66b68173a11d0ef8f4bb6253386c15d031017ba.tar.gz rails-f66b68173a11d0ef8f4bb6253386c15d031017ba.tar.bz2 rails-f66b68173a11d0ef8f4bb6253386c15d031017ba.zip |
Merge pull request #21950 from rafaelsales/issues/21922-fix-ar-group-by-attribute-lookup
Fix generated projection fields in group by query
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/relation/calculations.rb | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/activerecord/lib/active_record/relation/calculations.rb b/activerecord/lib/active_record/relation/calculations.rb index 8b9367acc7..f45844a9ea 100644 --- a/activerecord/lib/active_record/relation/calculations.rb +++ b/activerecord/lib/active_record/relation/calculations.rb @@ -275,15 +275,10 @@ module ActiveRecord else group_fields = group_attrs end + group_fields = arel_columns(group_fields) - group_aliases = group_fields.map { |field| - column_alias_for(field) - } - group_columns = group_aliases.zip(group_fields).map { |aliaz,field| - [aliaz, field] - } - - group = group_fields + group_aliases = group_fields.map { |field| column_alias_for(field) } + group_columns = group_aliases.zip(group_fields) if operation == 'count' && column_name == :all aggregate_alias = 'count_all' @@ -299,7 +294,7 @@ module ActiveRecord ] select_values += select_values unless having_clause.empty? - select_values.concat arel_columns(group_fields).zip(group_aliases).map { |field,aliaz| + select_values.concat group_columns.map { |aliaz, field| if field.respond_to?(:as) field.as(aliaz) else @@ -308,7 +303,7 @@ module ActiveRecord } relation = except(:group) - relation.group_values = group + relation.group_values = group_fields relation.select_values = select_values calculated_data = @klass.connection.select_all(relation, nil, relation.bound_attributes) |