LoginSignup
0
1

More than 1 year has passed since last update.

7日間の投稿をグラフ化 ~application.jsファイルが大事~

Last updated at Posted at 2022-06-26

★基本的には先駆者の方のサイトを見れば大半はできます!
ほぼ出来ていると思うんですが、中々グラフが表示されなかったので、メモとして残します。

↓↓↓素敵な先駆者のサイトはこちら(いつもめっちゃわかりやすくて助かってます!!!)↓↓↓

但し、記述を丸パクリしてもグラフが出現せず
こんな感じにしたいのに、、、otz

スクリーンショット 2022-06-26 15.05.41.png

gemのインストールは間違っていないと思ったので、怪しいなぁーって思っていた
「application.js」ファイルで検索をかけたところ、、、

import Chart from 'chart.js/auto';
import jQuery from "jquery"
global.$ = jQuery;
window.$ = jQuery;
global.Chart = Chart;

これを追記したら動きました♪

ちなみに、、、グラフの記述はこんな感じです!

book.rb
  scope :created_today, -> { where(created_at: Time.zone.now.all_day) } 
  scope :created_yesterday, -> { where(created_at: 1.day.ago.all_day) } 
  scope :created_2days, -> { where(created_at: 2.days.ago.all_day) } 
  scope :created_3days, -> { where(created_at: 3.days.ago.all_day) } 
  scope :created_4days, -> { where(created_at: 4.days.ago.all_day) } 
  scope :created_5days, -> { where(created_at: 5.days.ago.all_day) } 
  scope :created_6days, -> { where(created_at: 6.days.ago.all_day) } 
  scope :created_this_week, -> { where(created_at: 6.day.ago.beginning_of_day..Time.zone.now.end_of_day) } 
  scope :created_last_week, -> { where(created_at: 2.week.ago.beginning_of_day..1.week.ago.end_of_day) } 

↓↓↓イケメン風に描きたい人向け↓↓↓(僕はブサ面の小心者の初心者なのでこのままです。。。)

show.html
   <canvas id="myLineChart"></canvas>
  <script>
    $(document).on('turbolinks:load', function() {
      var ctx = document.getElementById("myLineChart");
      var myLineChart = new Chart(ctx, {
        type: 'line',
        data: {
          labels: ['6日前', '5日前', '4日前', '3日前', '2日前', '1日前', '今日'],
          datasets: [
            {
              label: '投稿した本の数',
              data: [
                <%= @books.created_6days.count %>,
                <%= @books.created_5days.count %>, 
                <%= @books.created_4days.count %>, 
                <%= @books.created_3days.count %>, 
                <%= @books.created_2days.count %>, 
                <%= @books.created_yesterday.count %>, 
                <%= @books.created_today.count %>
              ],
              borderColor: "rgba(0,0,255,1)",
              backgroundColor: "rgba(0,0,0,0)",
              tension: 0.4
            }
          ],
        },
        options: {
          title: {
            display: true,
            text: '7日間の投稿数の比較'
          },
          responsive: true,
          scales: {
            y:{
              suggestedMin: 0,
              suggestedMax: 10
            },
            x:{
              stacked: true
            },
          },
        }
      });
    });
  </script>
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1