2010-03-14 2 views
3

Seer를 사용하여 지난 7 일 동안 매일 새로운 사용자를 보여주는 롤링 그래프를 구현하고 싶습니다.Seer를 사용하여 Rails 앱에서 날짜별로 새 사용자를 그래프로 표시

내가있어 예언자가 설치 : 내가 구현하는 방법 주위에 내 머리를 얻기 위해 사투를 벌인거야

http://www.idolhands.com/ruby-on-rails/gems-plugins-and-engines/graphing-for-ruby-on-rails-with-seer

.

@users = User.all (: 조건 => {: created_at => 7.days.ago..Time.zone.now

은 내가 플롯하려는 사용자의 배열을 가지고 })

: data_method를 구현하는 올바른 방법은 created_at 날짜까지 롤백 할 수 없습니다.

누구나 Seer와 비슷하거나 비슷합니까?

Seer 샘플 페이지 (위 링크)를보고 나보다 더 똑똑한 사람이라면 누구든지 이것을 설명 할 수 있습니까?

답변

6

지난 7 일 동안 새로운 사용자 수를 표시하려고한다고 가정합니다. 그래서 당신은 다음과 같은

컨트롤러 코드

을 할 수 있다면
# declare a struct to hold the results 
UserCountByDate = Struct.new(:date, :count) 

def report 
    @user_counts = User.count(:group => "DATE(created_at)", 
        :conditions => ["created_at >= ? ", 7.days.ago], 
        :order => "DATE(created_at) ASC" 
       ).collect do |date, count| 
        UserCountByDate.new(date, count) 
       end 

end 

보기 코드

<div id="chart"></div> 

<%= Seer::visualize(
     @user_counts, 
     :as => :column_chart, 
     :in_element =>'chart', 
     :series => { 
     :series_label => 'date', 
     :data_method => 'count' 
     }, 
     :chart_options => { 
     :height => 300, 
     :width => 100 * @user_counts.size, 
     :is_3_d => true, 
     :legend => 'none', 
     :colors => "[{color:'#990000', darker:'#660000'}]", 
     :title => "New users in last 7 days", 
     :title_x => 'date', 
     :title_y => 'count' 
     } 
    ) 
-%> 

data_method의 입력으로 사용되는 배열의 각 행에 존재한다 차트. ActiveRecord count 메서드는 datecount 메서드에 응답하는 struct의 배열로 변환 된 해시를 반환합니다.

+0

나는 당신을 따라합니다. 도움에 정말 감사드립니다. 나는 일을 충분히 할 수있는 사람 중 한 명이지만, 잡초에 들어갔을 때의 전문적인 훈련과 경험이 부족하다는 것을 보여줍니다 .- 나는 그것이 어떻게 진행되는지 알려 드리겠습니다. –

+0

눈부신 ... 그것을 못 박았습니다. 코드를 읽었지만 카운트를 이해하고 메소드를 완전히 수집 할 수 있도록 약간의 시간을 할애해야합니다. 감사합니다. 톤 ... 정말 고맙습니다. –