提交 9d7f186f 编写于 作者: N Nathaniel Talbott 提交者: Michael Koziarski

Fixed an error triggered by a reload followed by a foreign key assignment.

Signed-off-by: NMichael Koziarski <michael@koziarski.com>
上级 79f55de9
......@@ -1268,7 +1268,11 @@ def association_accessor_methods(reflection, association_proxy_class)
if association_proxy_class == BelongsToAssociation
define_method("#{reflection.primary_key_name}=") do |target_id|
instance_variable_get(ivar).reset if instance_variable_defined?(ivar)
if instance_variable_defined?(ivar)
if association = instance_variable_get(ivar)
association.reset
end
end
write_attribute(reflection.primary_key_name, target_id)
end
end
......
......@@ -194,6 +194,14 @@ def test_reset_loads_association_next_time
assert_equal david, welcome.author
end
def test_assigning_association_id_after_reload
welcome = posts(:welcome)
welcome.reload
assert_nothing_raised do
welcome.author_id = authors(:david).id
end
end
def test_reload_returns_assocition
david = developers(:david)
assert_nothing_raised do
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册