Dan*_*ell 3 graphing ruby-on-rails graph
我想在过去7天内使用Seer实现一个显示新用户的滚动图表.
我安装了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
Run Code Online (Sandbox Code Playgroud)
查看代码
<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'
}
)
-%>
Run Code Online (Sandbox Code Playgroud)
在data_method应存在用作输入图表的阵列的每一行英寸 该ActiveRecord count方法返回一个哈希值,该哈希值将转换为struct响应方法date和数组的数组count.