{"id":1476,"date":"2022-02-11T19:28:55","date_gmt":"2022-02-11T10:28:55","guid":{"rendered":"https:\/\/suzutukiblog.com\/?p=1476"},"modified":"2022-03-07T18:37:56","modified_gmt":"2022-03-07T09:37:56","slug":"chart-js","status":"publish","type":"post","link":"https:\/\/suzutukiblog.com\/index.php\/2022\/02\/11\/chart-js\/","title":{"rendered":"Gem chart.js\u306e\u5c0e\u5165\u65b9\u6cd5(Docker\uff0bRails)"},"content":{"rendered":"<p>Gemfile\u306b\u8a18\u8ff0\u3057\u307e\u3059\u3002\u2193<\/p>\n<pre>Gemfile\r\n\r\ngem 'rails', '~&gt; 5.1.7'\r\ngem 'puma', '~&gt; 3.7'\r\ngem 'sass-rails', '~&gt; 5.0'\r\ngem 'bootstrap-sass', '3.3.7'\r\ngem 'font-awesome-sass'\r\ngem 'uglifier', '&gt;= 1.3.0'\r\ngem 'coffee-rails', '~&gt; 4.2'\r\ngem 'turbolinks', '~&gt; 5'\r\ngem 'bcrypt', '~&gt; 3.1.7'\r\ngem 'kaminari'\r\ngem 'rails-i18n', '~&gt; 5.1'\r\ngem 'jbuilder', '~&gt; 2.5'\r\n\r\ngem 'chart-js-rails', '~&gt; 0.1.4' \u2190\u8ffd\u52a0<\/pre>\n<p>\u30b3\u30f3\u30c6\u30ca\u3092\u4f5c\u308a\u307e\u3059<\/p>\n<pre><code>docker-compose build<\/code><\/pre>\n<p>\u30b3\u30f3\u30c6\u30ca\u3092\u8d77\u52d5\u3057\u307e\u3059<\/p>\n<pre><code>docker-compose up -d<\/code><\/pre>\n<p>\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u3092\u4f5c\u6210(\u540d\u524d\u306f\u4efb\u610f\u3067OK\u3067\u3059\u3002\u3053\u3053\u3067\u306fsmall_steps\u3068\u3057\u3066\u3044\u308b)<\/p>\n<pre>docker-compose exec web rails g controller small_steps index<\/pre>\n<p>package.json\u306b\u4ee5\u4e0b\u3092\u8a18\u8ff0\u3057\u307e\u3059<\/p>\n<pre><span class=\"p\">\r\n{<\/span>\r\n  <span class=\"nl\">\"name\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"chart_js_sample\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"nl\">\"private\"<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"nl\">\"dependencies\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nl\">\"chart.js\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^2.7.1\"<\/span> <span class=\"err\">\u2190\u8ffd\u52a0<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span><\/pre>\n<p>Rails\u30a2\u30d7\u30ea\u304c\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u8aad\u307f\u8fbc\u3081\u308b\u3088\u3046\u306b\u4ee5\u4e0b\u3092\u8a18\u8ff0\u3057\u307e\u3059\u3002<\/p>\n<div class=\"code-lang\"><span class=\"bold\">\/app\/assets\/javascripts\/application.js<\/span><\/div>\n<div class=\"highlight\">\n<pre>\/\/= require rails-ujs\r\n\/\/= require turbolinks\r\n\/\/= require jquery3\r\n\/\/= require jquery_ujs\r\n\/\/= require jquery\r\n\/\/= require Chart.min  \u2190\u8ffd\u52a0\r\n\/\/= require bootstrap\r\n\/\/= require_tree .<\/pre>\n<\/div>\n<p>\u30d3\u30e5\u30fc\u306b\u4ee5\u4e0b\u3092\u8a18\u8ff0\u3057\u307e\u3059\u3002<\/p>\n<p>small_steps\/index.html.erb<\/p>\n<pre>&lt;h1 class=\"text-center\"&gt;\u30b9\u30e2\u30fc\u30eb\u30b9\u30c6\u30c3\u30d7\u3068\u30d3\u30c3\u30b0\u30a8\u30ea\u30a2&lt;\/h1&gt;\r\n&lt;canvas id=\"myChart\" width=\"200\" height=\"200\"&gt;&lt;\/canvas&gt;\r\n&lt;script&gt;draw_graph();&lt;\/script&gt;<\/pre>\n<p>Javascript\u90e8\u5206\u306fCoffeeScript\u306b\u5909\u63db\u3057\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"coffeescript\">\n<div class=\"code-lang\">app\/assets\/javascripts\/small_steps.coffee<\/div>\n<\/div>\n<pre>window.draw_graph = -&gt;\r\n  ctx = document.getElementById(\"myChart\").getContext('2d')\r\n  myChart = new Chart(ctx, {\r\n    type: 'bar',\r\n    data: {\r\n      labels: [\"Red\", \"Blue\", \"Yellow\", \"Green\", \"Purple\", \"Orange\"],\r\n      datasets: [{\r\n        label: '# of Votes',\r\n        data: [12, 19, 3, 5, 2, 3],\r\n        backgroundColor: [\r\n          'rgba(255, 99, 132, 0.2)',\r\n          'rgba(54, 162, 235, 0.2)',\r\n          'rgba(255, 206, 86, 0.2)',\r\n          'rgba(75, 192, 192, 0.2)',\r\n          'rgba(153, 102, 255, 0.2)',\r\n          'rgba(255, 159, 64, 0.2)'\r\n        ],\r\n        borderColor: [\r\n          'rgba(255,99,132,1)',\r\n          'rgba(54, 162, 235, 1)',\r\n          'rgba(255, 206, 86, 1)',\r\n          'rgba(75, 192, 192, 1)',\r\n          'rgba(153, 102, 255, 1)',\r\n          'rgba(255, 159, 64, 1)'\r\n        ],\r\n        borderWidth: 1\r\n      }]\r\n    },\r\n    options: {\r\n      scales: {\r\n        yAxes: [{\r\n          ticks: {\r\n            beginAtZero:true\r\n          }\r\n        }]\r\n      }\r\n    }\r\n  })<\/pre>\n<p>http:\/\/localhost:3000\/small_steps\/index\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068\u2193<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-1479\" src=\"https:\/\/suzutukiblog.com\/wp-content\/uploads\/2020\/08\/84d4c7cf2b20af2fb4f2e31862a764a5-1024x559.png\" alt=\"\" width=\"625\" height=\"341\" srcset=\"https:\/\/suzutukiblog.com\/wp-content\/uploads\/2020\/08\/84d4c7cf2b20af2fb4f2e31862a764a5-1024x559.png 1024w, https:\/\/suzutukiblog.com\/wp-content\/uploads\/2020\/08\/84d4c7cf2b20af2fb4f2e31862a764a5-300x164.png 300w, https:\/\/suzutukiblog.com\/wp-content\/uploads\/2020\/08\/84d4c7cf2b20af2fb4f2e31862a764a5-768x419.png 768w, https:\/\/suzutukiblog.com\/wp-content\/uploads\/2020\/08\/84d4c7cf2b20af2fb4f2e31862a764a5-1536x838.png 1536w, https:\/\/suzutukiblog.com\/wp-content\/uploads\/2020\/08\/84d4c7cf2b20af2fb4f2e31862a764a5-2048x1117.png 2048w, https:\/\/suzutukiblog.com\/wp-content\/uploads\/2020\/08\/84d4c7cf2b20af2fb4f2e31862a764a5-624x340.png 624w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/p>\n<p>\u30b0\u30e9\u30d5\u304c\u63cf\u753b\u3055\u308c\u305f\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gemfile\u306b\u8a18\u8ff0\u3057\u307e\u3059\u3002\u2193 Gemfile gem &#8216;rails&#8217;, &#8216;~&gt; 5.1.7&#8217; gem &#8216;puma&#8217;, &#8216;~&gt; 3.7&#8217; gem &#8216;sass-rails&#8217;, &#8216;~&gt; 5.0&#8217; gem &#8216; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[23,27,13],"tags":[],"class_list":["post-1476","post","type-post","status-publish","format-standard","hentry","category-docker","category-programming-note","category-rails"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/posts\/1476","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/comments?post=1476"}],"version-history":[{"count":6,"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/posts\/1476\/revisions"}],"predecessor-version":[{"id":3875,"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/posts\/1476\/revisions\/3875"}],"wp:attachment":[{"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/media?parent=1476"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/categories?post=1476"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/tags?post=1476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}