diff options
author | Sean Griffin <sean@seantheprogrammer.com> | 2015-10-20 16:17:14 -0600 |
---|---|---|
committer | Sean Griffin <sean@seantheprogrammer.com> | 2015-10-20 16:17:14 -0600 |
commit | 286c1c3aac856d89d2470b738ba8abfdf230fbff (patch) | |
tree | 235427fa6c726a0f1133311f7ec1fbf432bc07fd /activerecord/lib/active_record/relation | |
parent | 7df83b5d9505136afdca20840c67fc4deb7a1adf (diff) | |
parent | b220c9f9b4cc5b17af40b09046501f3469929a11 (diff) | |
download | rails-286c1c3aac856d89d2470b738ba8abfdf230fbff.tar.gz rails-286c1c3aac856d89d2470b738ba8abfdf230fbff.tar.bz2 rails-286c1c3aac856d89d2470b738ba8abfdf230fbff.zip |
Merge pull request #20653 from repinel/allow-arel-select-count
Allow select using Arel and perform a count
Diffstat (limited to 'activerecord/lib/active_record/relation')
-rw-r--r-- | activerecord/lib/active_record/relation/calculations.rb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/relation/calculations.rb b/activerecord/lib/active_record/relation/calculations.rb index 1ff06b0679..8b9367acc7 100644 --- a/activerecord/lib/active_record/relation/calculations.rb +++ b/activerecord/lib/active_record/relation/calculations.rb @@ -219,6 +219,8 @@ module ActiveRecord end def aggregate_column(column_name) + return column_name if Arel::Expressions === column_name + if @klass.column_names.include?(column_name.to_s) Arel::Attribute.new(@klass.unscoped.table, column_name) else @@ -367,9 +369,9 @@ module ActiveRecord end end - # TODO: refactor to allow non-string `select_values` (eg. Arel nodes). def select_for_count if select_values.present? + return select_values.first if select_values.one? select_values.join(", ") else :all |