revises the rdoc of update_attributes and update_attributes! to document they are wrapped in a transaction, and adds code comments explaining why

This commit is contained in:
Xavier Noria 2010-07-14 17:42:48 +02:00
parent 684fb5e7d5
commit b7944e1b21
1 changed files with 9 additions and 4 deletions

View File

@ -118,18 +118,23 @@ module ActiveRecord
self.class.update_all(changes, { primary_key => self[primary_key] }) == 1
end
# Updates all the attributes from the passed-in Hash and saves the record.
# If the object is invalid, the saving will fail and false will be returned.
# Updates the attributes of the model from the passed-in hash and saves the
# record, all wrapped in a transaction. If the object is invalid, the saving
# will fail and false will be returned.
def update_attributes(attributes)
# The following transaction covers any possible database side-effects of the
# attributes assignment. For example, setting the IDs of a child collection.
with_transaction_returning_status do
self.attributes = attributes
save
end
end
# Updates an object just like Base.update_attributes but calls save! instead
# of save so an exception is raised if the record is invalid.
# Updates its receiver just like +update_attributes+ but calls <tt>save!</tt> instead
# of +save+, so an exception is raised if the record is invalid.
def update_attributes!(attributes)
# The following transaction covers any possible database side-effects of the
# attributes assignment. For example, setting the IDs of a child collection.
with_transaction_returning_status do
self.attributes = attributes
save!