diff options
author | James Coleman <jtc331@gmail.com> | 2012-03-02 15:37:48 -0500 |
---|---|---|
committer | James Coleman <jtc331@gmail.com> | 2012-03-02 16:31:18 -0500 |
commit | 217a8b01b1349d50fc9c331e9411034289c640ab (patch) | |
tree | cfe228d5ee1970a31f47263b07a02a041a47cfdf /activerecord/lib | |
parent | 5497432d71b88ae4b99c6c59199eba95d81f28f6 (diff) | |
download | rails-217a8b01b1349d50fc9c331e9411034289c640ab.tar.gz rails-217a8b01b1349d50fc9c331e9411034289c640ab.tar.bz2 rails-217a8b01b1349d50fc9c331e9411034289c640ab.zip |
Unset association when existing record is destroyed.
To avoid foreign key errors (and invalid data) in the database, when a belongs_to association is destroyed, it should also be nil'd out on the parent object.
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/autosave_association.rb | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/autosave_association.rb b/activerecord/lib/active_record/autosave_association.rb index d468663084..0468a73c7d 100644 --- a/activerecord/lib/active_record/autosave_association.rb +++ b/activerecord/lib/active_record/autosave_association.rb @@ -402,6 +402,7 @@ module ActiveRecord autosave = reflection.options[:autosave] if autosave && record.marked_for_destruction? + self[reflection.foreign_key] = nil record.destroy elsif autosave != false saved = record.save(:validate => !autosave) if record.new_record? || (autosave && record.changed_for_autosave?) |