2013-01-19 22 views
0

我有這個查詢,我正在使用這個查詢來獲取特定用戶所做的購買,然後將其映射到一個散列,以便它可以顯示在圖中。在按日期分組之前在查詢中修改created_at

orders_graph = user.orders.where(:purchased_period => current_period). 
       group("date(created_at)"). 
       select("purchased_at, sum(total_price) as total_price") 
(start_time.to_date..Date.today).map do |date| 
    order = orders_by_day.detect { |order| order.created_at.in_time_zone("#{user.time_zone}").to_date == date } 
    order && order.total_price.to_f || 0 

然而,圖形往往是由於不正確基於服務器時間的查詢分組,而不是用戶的時間(這是我想什麼)。無論如何修改分組之前(或分組)之前的created_at時間?

回答

0

爲什麼不改爲創建一個新的日期時間字段'created_at_in_user_time'? 然後,您可以在'before_create'回調中正確填入該字段。