2009-09-14 2 views
1

Rails를 내 Rails 응용 프로그램에서 평가하려고하고 있지만 날짜/시간 스탬프가있는 일련의 레코드를 가져 와서 Ruport의 그룹화 기능을 통해 그룹화하는 방법을 모르겠습니다.Ruport/Ruby on Rails로 그룹화하는 방법?

Ruport가 적합하지 않은 경우이 동일한 그룹화를 수행하는 다른/더 나은 방법을 사용할 수 있습니다. 하는 Ruport없이

+0

당신은 이것을 위해 ruport를 사용하지 않기로 결정 했습니까? 나는 루퍼트로 이것을 할 수 있기를 바란다 – Angela

+0

나는 루퍼트를 사용하지 않기로했다. –

답변

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 등등, 당신은에 의해 그룹하려는 작업에 따라 달라집니다.

+0

이것은 많은 도움이되었습니다. 감사! 나는 그것을 몇 번 더 upvote 수 있었으면 좋겠다. –

1

@ posts.group_by 함수를보기가 아닌 컨트롤러로 옮기는 것이 좋습니다.

2

Ruport에는 테이블에 새 열을 추가하는 방법이 포함되어 있습니다.

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

돈 ':이 방법은 물론, 같은 Google 웹 로그 분석에 대한 흥미로운 보고서를 생성 할 수 있습니다

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

: 그래서 타임 스탬프 소스에서 날짜 현명한 그룹은 다음과 같이 수행 할 수 있습니다 성능에 대해 알지 못합니다.

관련 문제