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にアクセスすると↓
グラフが描画された!