Graphische Darstellung von neuen Benutzern von Datum in einer Rails-Anwendung Seer mit
-
19-09-2019 - |
Frage
Ich möchte ein rollendes Diagramm, neue Benutzer für Tag in den letzten 7 Tagen implementieren Seer mit.
Ich habe Seer installiert:
http://www.idolhands.com/ruby-on-rails/gems-plugins-and-engines/graphing-for-ruby-on-rails-with-seer
Ich kämpfe mein Gehirn um zu bekommen, wie zu implementieren.
Ich habe eine Reihe von Usern bekam ich auf Grundstück wollen:
@users = User.all (: conditions => {: created_at => 7.days.ago..Time.zone.now})
Kann nicht der richtige Weg, finden Sie in der implementieren. Data_method sie durch created_at Datum aufzurollen
Wer diese oder ähnliche mit Seer getan?
Wer schlauer als ich in der Lage, dies zu erklären, nachdem an der Seer Beispielseite suchen (oben verlinkten)?
Lösung
Ich gehe davon aus Sie versuchen, die neue Benutzeranzahl von Tag zu zeigen, in den letzten 7 Tagen. Wenn ja, können Sie das folgende
tunController-Code
# 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
Code
<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'
}
)
-%>
Die data_method
sollten als Eingang für das Diagramm, die in jeder Reihe der Anordnung vorhanden sein. Die ActiveRecord count
Methode gibt einen Hash, der auf ein Array von struct
dass reagiert auf date
und count
Methoden umgewandelt wird.