使用Seer在Rails应用程序中按日期绘制新用户
我想使用Seer实现一个滚动图表,显示过去7天内新用户的数据。
我安装了Seer:
http://www.idolhands.com/ruby-on-rails/gems-plugins-and-engines/graphing-for-ruby-on-rails-with-seer
我正在努力让我的大脑围绕如何实施。
我有一个我想要绘制的用户数组:
@users = User.all(:conditions => {:created_at => 7.days.ago..Time.zone.now})
无法通过created_at日期看到正确的方法来实现:data_method将它们汇总。
任何与Seer完成此类或类似操作的人?
在查看Seer示例页面(上面链接)之后,任何比我聪明的人都能解释这个问题?
我假设您尝试在过去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
查看代码
<%= 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
方法返回一个哈希值,该哈希值将转换为响应date
和count
方法的struct
数组。