#■前提・実現したいこと
railsにて、DBのデータをグラフに反映させたいです。
chartkick→chart.jsに実装を切り替えてグラフの表示までは辿り着いたのですが、どうしてもDBデータが反映されず
困っております。
お恥ずかしい限りではございますがお力添えを頂きたく投稿させて頂きました。
何卒、よろしくお願いします!
#■発生している問題・エラーメッセージ
エラーは何も表示されないのですが、data[]内をpractice_timeに変更するとグラフの表示が消えてしまいます。
#■該当のソースコード
□ビュー【record/index.html.erb】□ <div class="main-record"> <div class="record-post"> <h2><%= link_to "新規で記録する", new_record_path ,class: :record_btn %><br /></div></h2> <h2><%= "#{current_user.nickname}さんの練習記録" %></h2> <div class="record_bar"> <canvas id="myBarChart" width="1000" height="500"></canvas> <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.bundle.min.js"></script> <script> practice_time = <% @practice_time %> var ctx = document.getElementById("myBarChart"); var myBarChart = new Chart(ctx, { type: 'bar', data: { labels: ['4月1日', '4月2日', '4月3日', '4月4日', '4月5日', '4月6日', '4月7日'], datasets: [ { label: '練習時間', data: [practice_time], backgroundColor: "rgb(175,238,238)" } ] }, options: { title: { display: true, text: '練習時間' }, scales: { yAxes: [{ ticks: { suggestedMax: 120, suggestedMin: 0, stepSize: 60, callback: function(value, index, values){ return value + '分' } } }] }, } }); </script> </div> </div>
□ コントローラー【records_controller.rb】□ class RecordsController < ApplicationController # before_action :task_string, only: [:create] def index end def new @record = Record.new end def create @record = Record.new(record_params) if @record.save redirect_to records_path else render :new end end def show @record = Record.find(params[:id]) @practice_time = @record.practice_time end private def record_params params.require(:record).permit(:practice_time, :ball, :content, check:[]).merge(user_id: current_user.id) end end
□ルーティング(routes.rb)□ Rails.application.routes.draw do devise_for :users, controllers: { registrations: 'users/registrations', sessions: 'users/sessions'} # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html root 'tops#index' resources :records, only: [:index, :new, :create, :show] resources :articles do resources :comments, only: :create end resources :users, only: :show end
#■試したこと
①コントローラーの記述追記(showアクションを追加)
②ビュー showアクションのインスタンス変数を追記
③ルーティングのresourcesにshowアクションを追記
#■補足情報(FW/ツールのバージョンなど)
・rails:6.0.0
・SequelPro:5.6.51
・recordsテーブルの画像(以下)
https://gyazo.com/00e1b7ea259acd56af31275ab80db607
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/20 11:54
2021/04/20 11:56
2021/04/20 12:52
2021/04/20 13:05
2021/04/20 13:21
2021/04/20 13:32
2021/04/20 14:09
2021/04/20 14:14
2021/04/20 14:18
2021/04/21 00:15
2021/04/21 00:56
2021/04/21 00:58
2021/04/21 05:31
2021/04/21 05:38
2021/04/21 05:41
2021/04/21 07:04