SEER을 사용하여 Rails 앱에서 날짜별로 신규 사용자 그래프
-
19-09-2019 - |
문제
지난 7 일 동안 SEER을 사용하여 새로운 사용자를 보여주는 롤링 그래프를 구현하고 싶습니다.
선견자가 설치되었습니다.
http://www.idolhands.com/ruby-on-rails/gems-plugins-and-engines/graphing-for-ruby-n-rails-with-seer
나는 구현 방법에 대해 내 두뇌를 얻기 위해 고군분투하고 있습니다.
플롯하고 싶은 사용자의 배열이 있습니다.
@users = user.all (: 조건 => {: create_at => 7. days.ago..mite.zone.now})
다음을 구현하는 올바른 방법을 볼 수 없습니다 : data_method create_at 날짜에 따라 롤업 할 수 있습니다.
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
코드를 봅니다
<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
메소드는 해시를 반환하며 배열로 변환됩니다. struct
그것은 응답합니다 date
그리고 count
행동 양식.
제휴하지 않습니다 StackOverflow