Forum: Ruby on Rails Saving results of sum method into another column?

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.
D282ea58535aae8e785f0f476ba34a3d?d=identicon&s=25 Herman (Guest)
on 2009-01-16 13:07
(Received via mailing list)
Basically what I'm trying to do is get the sum of 2 columns and save
those results in another. I guess I'm looking to do something like
this:
a = Product.find(:all)
b = Product.sum("test + test2", :group => "id")
a.test3 = b
a.save

Obviously that doesn't work, but I'm trying to achieve something like
that. Any suggestions?
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2009-01-16 13:20
(Received via mailing list)
On 16 Jan 2009, at 10:19, Herman wrote:

> that. Any suggestions?
>
Product.update "test3 = test+test2" would probably do it.

Fred
D282ea58535aae8e785f0f476ba34a3d?d=identicon&s=25 Herman (Guest)
on 2009-01-16 17:35
(Received via mailing list)
That didn't work. I received: ArgumentError: wrong number of arguments
(1 for 2)

I tried something like this and it also didn't work:
Product.update_all("test3", :sum => "test"+"test2", :group => "id")

I'd imagine I'm not that far off, but I can't figure it out.

On Jan 16, 6:19 am, Frederick Cheung <frederick.che...@gmail.com>
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2009-01-16 19:42
(Received via mailing list)
On 16 Jan 2009, at 16:34, Herman wrote:

>
> That didn't work. I received: ArgumentError: wrong number of arguments
> (1 for 2)
>
> I tried something like this and it also didn't work:
> Product.update_all("test3", :sum => "test"+"test2", :group => "id")
>

oops, typo, should be Product.update_all "test3 = test+test2"
D282ea58535aae8e785f0f476ba34a3d?d=identicon&s=25 Herman (Guest)
on 2009-01-16 21:31
(Received via mailing list)
Works great. Thank you so much!

On Jan 16, 12:41 pm, Frederick Cheung <frederick.che...@gmail.com>
E64d436cb6ecdfe7be5b350776f58c90?d=identicon&s=25 Chris Bartlett (Guest)
on 2009-01-17 21:37
(Received via mailing list)
Just to give another perspective... Do you really need to save the
sum? Could it be calculated whenever you need it? If you save the sum
you need to be confident that nothing will cause your data to get out
of sync, such as some update to 'test' that does not update the sum.
If you decide you do want to save the sum, could the database
management system handle it for you? E.g. in PostgreSQL you can define
triggers - in this case a trigger could update the sum for you no
matter how 'test' and 'test2' are updated. You'd then have much
greater faith in the reliability of each sum.
This topic is locked and can not be replied to.