aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations.rb
diff options
context:
space:
mode:
authorpivotal <pivotal@lexington.flood.pivotallabs.com>2008-08-26 09:20:24 -0700
committerMichael Koziarski <michael@koziarski.com>2008-08-27 11:22:15 +0200
commit9dbde4f5cbd0617ee6cce3e41d41335f9c9ce3fd (patch)
tree4021ec03167071a1c2736b831f9cd9b2b99b288b /activerecord/lib/active_record/associations.rb
parent6ec07e0737c3099056fc11fe43f4f19dde3770a6 (diff)
downloadrails-9dbde4f5cbd0617ee6cce3e41d41335f9c9ce3fd.tar.gz
rails-9dbde4f5cbd0617ee6cce3e41d41335f9c9ce3fd.tar.bz2
rails-9dbde4f5cbd0617ee6cce3e41d41335f9c9ce3fd.zip
Fix two has_one :through errors
* Set the association target on assignment; * Reset target to nil on reset, rather than empty array. Signed-off-by: Michael Koziarski <michael@koziarski.com> [#895 state:committed]
Diffstat (limited to 'activerecord/lib/active_record/associations.rb')
-rwxr-xr-xactiverecord/lib/active_record/associations.rb5
1 files changed, 2 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/associations.rb b/activerecord/lib/active_record/associations.rb
index f915daafba..4d935612ca 100755
--- a/activerecord/lib/active_record/associations.rb
+++ b/activerecord/lib/active_record/associations.rb
@@ -1270,10 +1270,9 @@ module ActiveRecord
association.create_through_record(new_value)
self.send(reflection.name, new_value)
else
- association.replace(new_value)
+ association.replace(new_value)
+ instance_variable_set(ivar, new_value.nil? ? nil : association)
end
-
- instance_variable_set(ivar, new_value.nil? ? nil : association)
end
define_method("set_#{reflection.name}_target") do |target|