2009-09-14 22 views
1

我試圖評估Ruport在我的Rails應用程序中的使用情況,但不知道如何使用日期/時間戳來記錄一系列記錄並通過Ruport的分組函數對它們進行分組。如何使用Ruport/Ruby on Rails按日進行分組?

如果Ruport沒有意義,我願意接受其他/更好的方法來做同樣的分組。

+0

你決定爲此沒有歸宿嗎?我希望能夠這樣做與ruport – Angela 2010-06-16 00:55:12

+0

我選擇不使用Ruport。 – 2010-06-16 03:35:35

回答

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_monthat_beginning_of_week等等,這取決於你想用什麼組。

+0

這幫了我很多時間。謝謝!我希望我能多勞多得。 – 2010-10-07 02:17:34

1

我會建議將@ posts.group_by函數移動到控制器而不是視圖。

2

Ruport包含一種將新列添加到表的方法。

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

這種方法可以,當然,也可以用來產生像谷歌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') } 

不要因此從時間戳源日期明智的分組可以這樣做盡管如此,我們仍然知道表現

相關問題