0

このクエリを使用して、特定のユーザーが行った購入を取得し、ハッシュにマップしてグラフに表示できるようにします。

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 時間を変更する方法はありますか?

4

1 に答える 1

0

代わりに、新しい日時フィールド「created_at_in_user_time」を作成してみませんか? 次に、「before_create」コールバックでそのフィールドに適切な時間を入力できます。

于 2013-01-19T11:13:43.267 に答える