1

Railsアプリで使用するためにRuportを評価しようとしていますが、日付/タイムスタンプ付きの一連のレコードを取得し、Ruportのグループ化機能を使用してそれらをグループ化する方法がわかりません。

Ruportが意味をなさない場合、私はこれと同じグループ化を行うための他の/より良い方法を受け入れています。

4

3 に答える 3

6

ルポートなし:

<% @posts.group_by {|p| p.created_at.at_beginning_of_day }.each do |day, posts| %>
  <h2><%= day.strftime("something...") %></h2>

  <% posts.each do |post| %>
    do stuff with `post`.
  <% end %>
<% end %>

グループ化する対象に応じてat_beginning_of_month、などを使用します。at_beginning_of_week

于 2009-09-15T07:06:05.240 に答える
2

Ruport には、テーブルに新しい列を追加するメソッドが含まれています。したがって、タイムスタンプ ソースからの日付ごとのグループ化は、次のように行うことができます。

@table.add_column('created_at_date') { |r| r.created_at.to_date }
created_at_date_grouping = Grouping(@table, :by => "created_at_date")

もちろん、この方法を使用して、Google Analytics などのより興味深いレポートを生成することもできます。

@table.add_column('day_of_week') { |r| r.created_at.strftime('%a') }
@table.add_column('hour_of_day') { |r| r.created_at.strftime('%H') }

性能については不明ですが。

于 2011-06-16T03:32:18.670 に答える