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 <[email protected]> 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 [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 -~----------~----~----~----~------~----~------~--~---

