Fix #5563. Should reflect the most recent change to either of association / id.
This commit is contained in:
parent
0f3901e910
commit
365b8b6db7
@ -132,7 +132,8 @@ def target_scope
|
||||
# ActiveRecord::RecordNotFound is rescued within the method, and it is
|
||||
# not reraised. The proxy is \reset and +nil+ is the return value.
|
||||
def load_target
|
||||
@target ||= find_target if find_target?
|
||||
@target = find_target if (@stale_state && stale_target?) || find_target?
|
||||
|
||||
loaded! unless loaded?
|
||||
target
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
|
@ -705,4 +705,15 @@ def test_polymorphic_with_custom_primary_key
|
||||
|
||||
assert_equal toy, sponsor.reload.sponsorable
|
||||
end
|
||||
|
||||
def test_reflect_the_most_recent_change
|
||||
author1, author2 = Author.limit(2)
|
||||
post = Post.new(:title => "foo", :body=> "bar")
|
||||
|
||||
post.author = author1
|
||||
post.author_id = author2.id
|
||||
|
||||
assert post.save
|
||||
assert_equal post.author_id, author2.id
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user