Hi Dave,
You can use methods from the Enumerable module to get a list of
salaries and calculate the sum. Try something like this:
def subscriber_salaries
subscribers.map(&:salary).sum
end
That will loop over each subscriber, build an array of the salaries,
and then calculate the sum. I would use this approach unless due to
the size of the data set you want to bring back the result directly
from the database.
Hope this helps,
Dan
http://www.dcmanges.com/blog
On Sep 28, 4:14 pm, dschruth <[EMAIL PROTECTED]> wrote:
> Hey Dan,
>
> Got another question about this.
>
> What if salary is not really a column in the database?
>
> What if it's a variable which is just a function of two other database
> columns?
>
> For example what if 'salary' is a variable defined in the Magazine
> object but it's either 'gross_income' or 'gross_pay' (depending on
> which is selected via a third column's value) ?
>
> When I try to use the non-column *variable* salary below, i get the
> following error:
>
> "PGError: ERROR: column "salary" does not exist"
>
> Basically I'm just asking how to sum up related objects' variables.
> (which are not stored in the database)
>
> On Sep 22, 1:14 pm, Dan Manges <[EMAIL PROTECTED]> wrote:
>
> > On Sep 22, 1:41 pm, dschruth <[EMAIL PROTECTED]> wrote:
>
> > > Lets just use your Magazine / Subscriber example for now.
>
> > > I want to do something like this:
> > > --------------------------------------------------------
> > > class Magazine
> > > def subscriber_salaries
> > > Subscriber.calculate(:sum, :salary, :conditions => "magazine_id =
> > > " + id.to_s) # PGError: ERROR: column "magazine_id" does not
> > > exist
> > > end
> > > end
>
> > You need to implement subscriber_salaries like this:
>
> > class Magazine
> > has_many :subscriptions
> > has_many :subscribers, :through => :subscriptions
> > def subscriber_salaries
> > subscribers.calculate(:sum, :salary)
> > end
> > end
>
> > -Dan
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---