Forum: Ruby on Rails Can you update a db record without first retrieving it?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Sj T. (Guest)
on 2009-03-11 05:14
Folks,

I display a set of records to the user who can make changes to one or
more of those records. When the user saves the changes, I get them back
in an array that contains only the changed records - with both the
modified an unmodified attributes for each record. This array also has
the unique id for each record.

What is the best/fastest way for me to update the records in the db? Or
do I just have to iterate through the array, retrieving each record
again from the db and setting up the call to update_attributes by
retrieving each attribute individually from the array?

It feels so unlike rails to have to do that and sounds like there must
be a more efficient way to get all the changed data from the array to
the database perhaps in a single call.

Appreciate any pointers or help. I am using Rails 2.2 if that is a
factor in your answer.

Thanks,
-S
Frederick C. (Guest)
on 2009-03-11 11:59
(Received via mailing list)
On Mar 11, 3:14 am, Sj Tib <removed_email_address@domain.invalid> wrote:

> What is the best/fastest way for me to update the records in the db? Or
> do I just have to iterate through the array, retrieving each record
> again from the db and setting up the call to update_attributes by
> retrieving each attribute individually from the array?

Have a look at the update_all method in the api docs.

Fred
This topic is locked and can not be replied to.