aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/associations
diff options
context:
space:
mode:
authorAnmol Chopra <anmolchopra@rocketbox.in>2017-11-24 17:52:35 +0530
committerAnmol Chopra <anmolchopra@rocketbox.in>2017-11-27 09:41:36 +0530
commitc10152daf948b5bdcf48cda06b9bbddee9e8c398 (patch)
treea793ba191e95f4f08c5d1af86f8739fec92cf2e6 /activerecord/test/cases/associations
parenta7d7277f947dcbe31870af9f03a42d56d2b60fcc (diff)
downloadrails-c10152daf948b5bdcf48cda06b9bbddee9e8c398.tar.gz
rails-c10152daf948b5bdcf48cda06b9bbddee9e8c398.tar.bz2
rails-c10152daf948b5bdcf48cda06b9bbddee9e8c398.zip
Inverse instance should not be reloaded during autosave if called in validation
Record saved in save_has_one_association already make call to association.loaded! via record's before_save callback of save_belongs_to_association, but this will reload object if accessed in record's validation.
Diffstat (limited to 'activerecord/test/cases/associations')
-rw-r--r--activerecord/test/cases/associations/inverse_associations_test.rb10
1 files changed, 10 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations/inverse_associations_test.rb b/activerecord/test/cases/associations/inverse_associations_test.rb
index e13cf93dcf..d55e10e23b 100644
--- a/activerecord/test/cases/associations/inverse_associations_test.rb
+++ b/activerecord/test/cases/associations/inverse_associations_test.rb
@@ -672,6 +672,16 @@ class InversePolymorphicBelongsToTests < ActiveRecord::TestCase
assert_equal old_inversed_man.object_id, new_inversed_man.object_id
end
+ def test_inversed_instance_should_not_be_reloaded_after_stale_state_changed_with_validation
+ face = Face.new man: Man.new
+
+ old_inversed_man = face.man
+ face.save!
+ new_inversed_man = face.man
+
+ assert_equal old_inversed_man.object_id, new_inversed_man.object_id
+ end
+
def test_should_not_try_to_set_inverse_instances_when_the_inverse_is_a_has_many
i = interests(:llama_wrangling)
m = i.polymorphic_man