Gemfileに記述します。↓
Gemfile gem 'rails', '~> 5.1.7' gem 'puma', '~> 3.7' gem 'sass-rails', '~> 5.0' gem 'bootstrap-sass', '3.3.7' gem 'font-awesome-sass' gem 'uglifier', '>= 1.3.0' gem 'coffee-rails', '~> 4.2' gem 'turbolinks', '~> 5' gem 'bcrypt', '~> 3.1.7' gem 'kaminari' gem 'rails-i18n', '~> 5.1' gem 'jbuilder', '~> 2.5' gem 'chart-js-rails', '~> 0.1.4' ←追加
コンテナを作ります
docker-compose build
コンテナを起動します
docker-compose up -d
コントローラを作成(名前は任意でOKです。ここではsmall_stepsとしている)
docker-compose exec web rails g controller small_steps index
package.jsonに以下を記述します
{ "name": "chart_js_sample", "private": true, "dependencies": { "chart.js": "^2.7.1" ←追加 } }
Railsアプリがライブラリを読み込めるように以下を記述します。
/app/assets/javascripts/application.js
//= require rails-ujs
//= require turbolinks
//= require jquery3
//= require jquery_ujs
//= require jquery
//= require Chart.min ←追加
//= require bootstrap
//= require_tree .
ビューに以下を記述します。
small_steps/index.html.erb
<h1 class="text-center">スモールステップとビッグエリア</h1> <canvas id="myChart" width="200" height="200"></canvas> <script>draw_graph();</script>
Javascript部分はCoffeeScriptに変換します。
app/assets/javascripts/small_steps.coffee
window.draw_graph = -> ctx = document.getElementById("myChart").getContext('2d') myChart = new Chart(ctx, { type: 'bar', data: { labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"], datasets: [{ label: '# of Votes', data: [12, 19, 3, 5, 2, 3], backgroundColor: [ 'rgba(255, 99, 132, 0.2)', 'rgba(54, 162, 235, 0.2)', 'rgba(255, 206, 86, 0.2)', 'rgba(75, 192, 192, 0.2)', 'rgba(153, 102, 255, 0.2)', 'rgba(255, 159, 64, 0.2)' ], borderColor: [ 'rgba(255,99,132,1)', 'rgba(54, 162, 235, 1)', 'rgba(255, 206, 86, 1)', 'rgba(75, 192, 192, 1)', 'rgba(153, 102, 255, 1)', 'rgba(255, 159, 64, 1)' ], borderWidth: 1 }] }, options: { scales: { yAxes: [{ ticks: { beginAtZero:true } }] } } })
http://localhost:3000/small_steps/indexにアクセスすると↓
グラフが描画された!