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