aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/calculations_test.rb
diff options
context:
space:
mode:
authorSoutaro Matsumoto <matsumoto@soutaro.com>2015-09-25 00:30:22 +0900
committerSean Griffin <sean@seantheprogrammer.com>2015-10-20 14:47:55 -0600
commita7628099de796a2db2c18e946dab319abd0fcba2 (patch)
treef36d7fdd0bd7daf91a7a2870cc5822fb9f3c5417 /activerecord/test/cases/calculations_test.rb
parentd99db6b8b3e48ca209436facdac9899d3d99f641 (diff)
downloadrails-a7628099de796a2db2c18e946dab319abd0fcba2.tar.gz
rails-a7628099de796a2db2c18e946dab319abd0fcba2.tar.bz2
rails-a7628099de796a2db2c18e946dab319abd0fcba2.zip
Qualify column names in calculation
Column names inserted via `group` have to be qualified with table name.
Diffstat (limited to 'activerecord/test/cases/calculations_test.rb')
-rw-r--r--activerecord/test/cases/calculations_test.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/activerecord/test/cases/calculations_test.rb b/activerecord/test/cases/calculations_test.rb
index d904b802fa..ba69823250 100644
--- a/activerecord/test/cases/calculations_test.rb
+++ b/activerecord/test/cases/calculations_test.rb
@@ -102,6 +102,25 @@ class CalculationsTest < ActiveRecord::TestCase
assert_equal 60, c[2]
end
+ def test_should_generate_valid_sql_with_joins_and_group
+ assert_nothing_raised ActiveRecord::StatementInvalid do
+ AuditLog.joins(:developer).group(:id).count
+ end
+ end
+
+ def test_should_calculate_against_given_relation
+ developer = Developer.create!(name: "developer")
+ developer.audit_logs.create!(message: "first log")
+ developer.audit_logs.create!(message: "second log")
+
+ c = developer.audit_logs.joins(:developer).group(:id).count
+
+ assert_equal developer.audit_logs.count, c.size
+ developer.audit_logs.each do |log|
+ assert_equal 1, c[log.id]
+ end
+ end
+
def test_should_order_by_grouped_field
c = Account.group(:firm_id).order("firm_id").sum(:credit_limit)
assert_equal [1, 2, 6, 9], c.keys.compact