diff options
author | Chiel Wester <chiel.wester@holder.nl> | 2010-12-13 15:06:23 +0100 |
---|---|---|
committer | Vijay Dev <vijaydev.cse@gmail.com> | 2010-12-16 01:49:28 +0530 |
commit | bda16eb0920780509467bcf051d1a01639357903 (patch) | |
tree | 4c7b0a6bf5e1ea4acab575317c759471a4254e13 /activerecord/lib | |
parent | 9cfbada93a1e838f6d07e46ea5ab2c3da6e08e78 (diff) | |
download | rails-bda16eb0920780509467bcf051d1a01639357903.tar.gz rails-bda16eb0920780509467bcf051d1a01639357903.tar.bz2 rails-bda16eb0920780509467bcf051d1a01639357903.zip |
Only call save on belongs_to associations if the record has changed or any nested associations have changed (resolves #3353)
Signed-off-by: José Valim <jose.valim@gmail.com>
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/autosave_association.rb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/autosave_association.rb b/activerecord/lib/active_record/autosave_association.rb index c3dda29d03..4a18719551 100644 --- a/activerecord/lib/active_record/autosave_association.rb +++ b/activerecord/lib/active_record/autosave_association.rb @@ -363,7 +363,7 @@ module ActiveRecord if autosave && association.marked_for_destruction? association.destroy elsif autosave != false - saved = association.save(:validate => !autosave) if association.new_record? || autosave + saved = association.save(:validate => !autosave) if association.new_record? || (autosave && association.changed_for_autosave?) if association.updated? association_id = association.send(reflection.options[:primary_key] || :id) |