I am interested in this also.
Sorry don''t have any ideas as I am to new to RoR myself
On Fri, May 1, 2009 at 7:32 PM, miga
<migatine-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> Is there a way to rewrite the following Model method avoiding
> connection.select?
>
> class LineOrder < ActivateRecord::Base
> belongs_to :auction
> belongs_to :operation
>
> ...
> def self.amounts_by_year(search)
> search_company = ""
> if search
> search_company = "inner join auctions on
> line_orders.auction_id=auctions.id where company LIKE "
> + "''%#{search}%''"
> end
> connection.select_all("select year(date) as YD,
> sum(if(operation_id != 2, gross_price, NULL)) as BGP,
> sum(if(operation_id != 2, costs, NULL)) as BC,
> sum(if(operation_id != 2, net_price, NULL)) as BNP,
> sum(if(operation_id = 2, gross_price, NULL)) as SGP,
> sum(if(operation_id = 2, costs, NULL)) as SC,
> sum(if(operation_id = 2, net_price, NULL)) as SNP
> from line_orders " + "#{search_company} " + "group
by year(date)")
> end
>
> To fix the idea:
>
> The method is used in the index view to show at user''s will the
> amounts by year either of a given auction or of all auctions,
> depending if the user has chosen to restrict the list to a particular
> auction or not.
>
> search is then the variable which is passed from the view to the model
> to get the scope on which the method will be applied.
>
> company is a field of the auction Model.
>
> gross_price, costs, net_price are entered unsigned for user''s
> convenience. Hence they need to be separated afterwards depending on
> the operation_id.
>
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
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
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---