aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2017-01-03 01:40:04 +0900
committerRyuta Kamizono <kamipo@gmail.com>2017-01-03 01:40:04 +0900
commitb177427d977b21cb18d2eca688539565e8970324 (patch)
treecde6f525b99605e8e20902f9356163ec3de99e25 /activerecord/test
parent4a36d81385bb78064fd3ebe0b35c9430017f7971 (diff)
downloadrails-b177427d977b21cb18d2eca688539565e8970324.tar.gz
rails-b177427d977b21cb18d2eca688539565e8970324.tar.bz2
rails-b177427d977b21cb18d2eca688539565e8970324.zip
Fix update counters of multiple records with touch: true
Currently does not work the following example in the doc: ```ruby # For the Posts with id of 10 and 15, increment the comment_count by 1 # and update the updated_at value for each counter. Post.update_counters [10, 15], comment_count: 1, touch: true # Executes the following SQL: # UPDATE posts # SET comment_count = COALESCE(comment_count, 0) + 1, # `updated_at` = '2016-10-13T09:59:23-05:00' # WHERE id IN (10, 15) ```
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/counter_cache_test.rb10
1 files changed, 10 insertions, 0 deletions
diff --git a/activerecord/test/cases/counter_cache_test.rb b/activerecord/test/cases/counter_cache_test.rb
index c735e13715..c7d0ba32b4 100644
--- a/activerecord/test/cases/counter_cache_test.rb
+++ b/activerecord/test/cases/counter_cache_test.rb
@@ -227,6 +227,16 @@ class CounterCacheTest < ActiveRecord::TestCase
end
end
+ test "update counters of multiple records with touch: true" do
+ t1, t2 = topics(:first, :second)
+
+ assert_touching t1, :updated_at do
+ assert_difference ["t1.reload.replies_count", "t2.reload.replies_count"], 2 do
+ Topic.update_counters([t1.id, t2.id], replies_count: 2, touch: true)
+ end
+ end
+ end
+
test "update multiple counters with touch: true" do
assert_touching @topic, :updated_at do
Topic.update_counters(@topic.id, replies_count: 2, unique_replies_count: 2, touch: true)