Nouveaux utilisateurs par représentation graphique date dans une application Rails en utilisant Seer
-
19-09-2019 - |
Question
Je voudrais mettre en œuvre un graphique montrant roulant nouveaux utilisateurs par jour au cours des 7 derniers jours en utilisant Seer.
J'ai Seer installé:
http://www.idolhands.com/ruby-on-rails/gems-plugins-and-engines/graphing-for-ruby-on-rails-with-seer
Je me bats pour obtenir mon cerveau sur la façon de mettre en œuvre.
J'ai un tableau des utilisateurs que je veux tracer:
= @users User.all (: conditions => {: created_at => 7.days.ago..Time.zone.now})
ne peut pas voir la bonne façon de mettre en œuvre le:. Data_method pour les rouler par date created_at
Toute personne fait ceci ou similaire avec Seer?
Tout le monde plus intelligent que moi en mesure d'expliquer ce après avoir regardé la page échantillon Seer (lien ci-dessus)?
La solution
Je suppose que vous essayez de montrer le nouveau nombre d'utilisateurs par jour 7 derniers jours. Si oui, vous pouvez effectuer les opérations suivantes
Code contrôleur
# 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
Afficher le 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'
}
)
-%>
Le data_method
doit être présent dans chaque rangée de la matrice utilisée comme entrée pour le diagramme. La méthode de ActiveRecord count
renvoie une table de hachage, qui est converti en un tableau de struct
qui répond aux date
et méthodes de count
.