diff options
author | Sean Griffin <sean@thoughtbot.com> | 2015-01-26 10:50:46 -0700 |
---|---|---|
committer | Sean Griffin <sean@thoughtbot.com> | 2015-01-26 11:36:13 -0700 |
commit | 025187d9806ddfbdded15d0c7bd8341665ee40e9 (patch) | |
tree | 7af2aaa3c7e5f103e6237593b006ff3e396925c9 /activerecord/test | |
parent | 71003d63b6e217625450b0942a7afb8d7d1d14d9 (diff) | |
download | rails-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')
-rw-r--r-- | activerecord/test/cases/counter_cache_test.rb | 9 |
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 |