diff options
author | Jon Leighton <j@jonathanleighton.com> | 2011-01-09 16:42:30 +0000 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2011-01-11 13:45:07 -0800 |
commit | 9086b02ba5b0bd3e956097c7edbd0f337c614801 (patch) | |
tree | d6975f9631df54c08703cd559b1f6deb39026d27 | |
parent | 6055bbedaa4b7b4bb2377ac87147196eebb2edc1 (diff) | |
download | rails-9086b02ba5b0bd3e956097c7edbd0f337c614801.tar.gz rails-9086b02ba5b0bd3e956097c7edbd0f337c614801.tar.bz2 rails-9086b02ba5b0bd3e956097c7edbd0f337c614801.zip |
Document the recent changes to association assignment
-rw-r--r-- | activerecord/lib/active_record/associations.rb | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/associations.rb b/activerecord/lib/active_record/associations.rb index 8907c9c487..3f9762383b 100644 --- a/activerecord/lib/active_record/associations.rb +++ b/activerecord/lib/active_record/associations.rb @@ -332,12 +332,14 @@ module ActiveRecord # === One-to-one associations # # * Assigning an object to a +has_one+ association automatically saves that object and - # the object being replaced (if there is one), in order to update their primary + # the object being replaced (if there is one), in order to update their foreign # keys - except if the parent object is unsaved (<tt>new_record? == true</tt>). - # * If either of these saves fail (due to one of the objects being invalid) the assignment - # statement returns +false+ and the assignment is cancelled. + # * If either of these saves fail (due to one of the objects being invalid), an + # <tt>ActiveRecord::RecordNotSaved</tt> exception is raised and the assignment is + # cancelled. # * If you wish to assign an object to a +has_one+ association without saving it, - # use the <tt>build_association</tt> method (documented below). + # use the <tt>build_association</tt> method (documented below). The object being + # replaced will still be saved to update its foreign key. # * Assigning an object to a +belongs_to+ association does not save the object, since # the foreign key field belongs on the parent. It does not save the parent either. # @@ -348,6 +350,9 @@ module ActiveRecord # stored in the database. # * If saving any of the objects being added to a collection (via <tt>push</tt> or similar) # fails, then <tt>push</tt> returns +false+. + # * If saving fails while replacing the collection (via <tt>association=</tt>), an + # <tt>ActiveRecord::RecordNotSaved</tt> exception is raised and the assignment is + # cancelled. # * You can add an object to a collection without automatically saving it by using the # <tt>collection.build</tt> method (documented below). # * All unsaved (<tt>new_record? == true</tt>) members of the collection are automatically |