diff options
author | Jon Leighton <j@jonathanleighton.com> | 2011-12-14 17:25:51 +0000 |
---|---|---|
committer | Jon Leighton <j@jonathanleighton.com> | 2011-12-14 17:28:59 +0000 |
commit | 909b337da8d905afe0204cd96b033a276522441f (patch) | |
tree | b4ec853a6112cf2e0bf3135f7a274f170bc04c9a /activerecord/lib/active_record | |
parent | 18bf30982bb2ec013dc65a7e7e65ff45fcd4d73b (diff) | |
download | rails-909b337da8d905afe0204cd96b033a276522441f.tar.gz rails-909b337da8d905afe0204cd96b033a276522441f.tar.bz2 rails-909b337da8d905afe0204cd96b033a276522441f.zip |
Don't try to autosave nested assocs. Fixes #2961.
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/autosave_association.rb | 2 | ||||
-rw-r--r-- | activerecord/lib/active_record/reflection.rb | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/autosave_association.rb b/activerecord/lib/active_record/autosave_association.rb index 6d3f1839c5..c86eaba498 100644 --- a/activerecord/lib/active_record/autosave_association.rb +++ b/activerecord/lib/active_record/autosave_association.rb @@ -343,7 +343,7 @@ module ActiveRecord if autosave saved = association.insert_record(record, false) else - association.insert_record(record) + association.insert_record(record) unless reflection.nested? end elsif autosave saved = record.save(:validate => false) diff --git a/activerecord/lib/active_record/reflection.rb b/activerecord/lib/active_record/reflection.rb index 52968070cb..f8a2de0f7e 100644 --- a/activerecord/lib/active_record/reflection.rb +++ b/activerecord/lib/active_record/reflection.rb @@ -262,6 +262,10 @@ module ActiveRecord [self] end + def nested? + false + end + # An array of arrays of conditions. Each item in the outside array corresponds to a reflection # in the #chain. The inside arrays are simply conditions (and each condition may itself be # a hash, array, arel predicate, etc...) |