From 604a09462eb6ad9eec0bd8ba3f100f6c402945e3 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 17 Dec 2004 21:51:14 +0000 Subject: [PATCH] Added Base#update_attributes that'll accept a hash of attributes and save the record (returning true if it passed validation, false otherwise). Added a return value for Base#update_attribute, so that you get to know whether the save was successful or if it failed validation. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@207 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activerecord/CHANGELOG | 11 +++++++++++ activerecord/lib/active_record/base.rb | 8 +++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG index 7c032d1a9d..91c6a683b1 100644 --- a/activerecord/CHANGELOG +++ b/activerecord/CHANGELOG @@ -1,5 +1,16 @@ *SVN* +* Added Base#update_attributes that'll accept a hash of attributes and save the record (returning true if it passed validation, false otherwise). + + Before: + person.attributes = @params["person"] + person.save + + Now: + person.update_attributes(@params["person"]) + +* Added a return value for Base#update_attribute, so that you get to know whether the save was successful or if it failed validation. + * Added Base.destroy and Base.delete to remove records without holding a reference to them first. diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index 2bcea9dd5d..81f9f84d21 100755 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -789,7 +789,13 @@ def clone # Updates a single attribute and saves the record. This is especially useful for boolean flags on existing records. def update_attribute(name, value) self[name] = value - save + return save + end + + # Updates all the attributes in from the passed hash and saves the record. + def update_attributes(attributes) + attributes = attributes + return save end # Returns the value of attribute identified by attr_name after it has been type cast (for example, -- GitLab