我正在尝试评估Ruport在我的Rails应用程序中使用,但我不确定如何使用日期/时间戳记拍摄一系列记录,并通过Ruport的分组功能对它们进行分组。
如果Ruport没有意义,我会接受其他/更好的方法来做同样的分组。
答案 0 :(得分:6)
没有ruport:
<% @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
等,具体取决于您要分组的内容。
答案 1 :(得分: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') }
虽然不知道表现。
答案 2 :(得分:1)
我建议将@ posts.group_by函数移动到控制器而不是视图中。