aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/associations/extension_test.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2017-03-18 18:17:34 +0900
committerRyuta Kamizono <kamipo@gmail.com>2017-03-20 18:49:14 +0900
commit1385a8b5ff81adc3dfa5dc6ad88ce00b28e95ce1 (patch)
treef967c315d6d4281cbdde13b2481126d20fc4f89c /activerecord/test/cases/associations/extension_test.rb
parent1835d87fb848fd9f13e43bf16abd41be231b1666 (diff)
downloadrails-1385a8b5ff81adc3dfa5dc6ad88ce00b28e95ce1.tar.gz
rails-1385a8b5ff81adc3dfa5dc6ad88ce00b28e95ce1.tar.bz2
rails-1385a8b5ff81adc3dfa5dc6ad88ce00b28e95ce1.zip
Fix extension method with dirty target in has_many associations
Extension methods should not delegate to `scope` to respect dirty target on `CollectionProxy`. Fixes #28419.
Diffstat (limited to 'activerecord/test/cases/associations/extension_test.rb')
-rw-r--r--activerecord/test/cases/associations/extension_test.rb5
1 files changed, 5 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations/extension_test.rb b/activerecord/test/cases/associations/extension_test.rb
index 974a3080d4..87d842f21d 100644
--- a/activerecord/test/cases/associations/extension_test.rb
+++ b/activerecord/test/cases/associations/extension_test.rb
@@ -36,6 +36,11 @@ class AssociationsExtensionsTest < ActiveRecord::TestCase
assert_equal comments(:greetings), posts(:welcome).comments.not_again.find_most_recent
end
+ def test_extension_with_dirty_target
+ comment = posts(:welcome).comments.build(body: "New comment")
+ assert_equal comment, posts(:welcome).comments.with_content("New comment")
+ end
+
def test_marshalling_extensions
david = developers(:david)
assert_equal projects(:action_controller), david.projects.find_most_recent