J'ai amélioré la * liste de tâches de la famille* créée la dernière fois et j'ai essayé de dessiner un graphique.
main.rb
require 'sinatra'
require 'sinatra/reloader'
require 'date'
require 'active_record'
require 'rack/csrf'
require 'chartkick' #ajouter à
bash.sh
$ ls public/
chartkick.js main.js style.css
Mettre chartkick.js
en public
main.rb
get '/' do
con = ActiveRecord::Base.connection
dat = con.execute("select users.name, scores.score, scores.point from users inner join scores on users.id = scores.user_id where scores.flag=0 order by users.name, scores.point")
h = {name: '', data: {}}
@graph_data = []
tname = ''
dat.each do |x|
if x["name"] == tname
h[:data][x["point"]] = x["score"]
else
tname = x["name"]
if h[:name] != ''
@graph_data << h.dup
end
h[:name] = x["name"]
h[:data] = {}
h[:data][x["point"]] = x["score"]
end
end
@graph_data << h.dup
erb :index
end
À l'origine, vous devriez bien utiliser ʻActiveRecord, mais vous pouvez obtenir les données en tapant directement
SQL`.
index.erb
<%= line_chart @graph_data, min: 40, max: 100 %>
C'est grâce à "gem" qu'il est magnifiquement dessiné.
Site référencé Create beautiful JavaScript charts with one line of Ruby
Recommended Posts