2010-03-14 47 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做過類似的事情?

任何人都比我更聰明能夠解釋這一點看先驗示例頁面(上面鏈接)?

回答

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

我想我跟着你。我非常感謝幫助。我是那些能夠完成某些事情的人中的一員,但是當我進入雜草時,缺乏專業訓練和經驗顯示:-) 我會讓你知道它是怎麼回事。 – 2010-03-14 14:55:40

+0

明亮......釘住它。 我很喜歡你的代碼,但需要花一些時間閱讀,以確保我瞭解計數並完全收集方法。 非常感謝...我真的很感激它。 – 2010-03-14 19:08:53