aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/counter_cache_test.rb
diff options
context:
space:
mode:
authorSean Griffin <sean@thoughtbot.com>2015-01-26 10:50:46 -0700
committerSean Griffin <sean@thoughtbot.com>2015-01-26 11:36:13 -0700
commit025187d9806ddfbdded15d0c7bd8341665ee40e9 (patch)
tree7af2aaa3c7e5f103e6237593b006ff3e396925c9 /activerecord/test/cases/counter_cache_test.rb
parent71003d63b6e217625450b0942a7afb8d7d1d14d9 (diff)
downloadrails-025187d9806ddfbdded15d0c7bd8341665ee40e9.tar.gz
rails-025187d9806ddfbdded15d0c7bd8341665ee40e9.tar.bz2
rails-025187d9806ddfbdded15d0c7bd8341665ee40e9.zip
Move flattening records added to an association farther out
There are many ways that things end up getting passed to `concat`. Not all of those entry points called `flatten` on their input. It seems that just about every method that is meant to take a single record, or that splats its input, is meant to also take an array. `concat` is the earliest point that is common to all of the methods which add records to the association. Partially fixes #18689
Diffstat (limited to 'activerecord/test/cases/counter_cache_test.rb')
-rw-r--r--activerecord/test/cases/counter_cache_test.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/activerecord/test/cases/counter_cache_test.rb b/activerecord/test/cases/counter_cache_test.rb
index 07a182070b..96a0edea34 100644
--- a/activerecord/test/cases/counter_cache_test.rb
+++ b/activerecord/test/cases/counter_cache_test.rb
@@ -180,4 +180,13 @@ class CounterCacheTest < ActiveRecord::TestCase
SpecialTopic.reset_counters(special.id, :lightweight_special_replies)
end
end
+
+ test "counters are updated both in memory and in the database on create" do
+ car = Car.new(engines_count: 0)
+ car.engines = [Engine.new, Engine.new]
+ car.save!
+
+ assert_equal 2, car.engines_count
+ assert_equal 2, car.reload.engines_count
+ end
end