■前提・実現したいこと
railsにて、練習記録(練習時間と球数)をフォームで入力後、記録内容を棒グラフで表示(日/週/月で記録内容の切り替えが可能)したいです。
gemで「Chartkick」と「groupdate」を導入しました。入力データとグラフを紐付ける実装をしたいのですが、ホームページを見ても見つかりませんでした。
大変お手数ですが、お力添えを頂きたく投稿させて頂きました。
何卒、よろしくお願いします!
■エラーが発生するまでに対応していた内容
①MySQLのタイムゾーンの編集
②ターミナルで「mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql」を実行
③ターミナルでmysql -u root(MySQLにrootユーザーでログインする時に実行するコマンド)
④ターミナルで「SELECT CONVERT_TZ(NOW(), ‘+00:00’, ‘Pacific/Honolulu’);」を実行
⑤exitでMySQLを閉じて、ローカルサーバーを再起動
#■発生している問題・エラーメッセージ
□ブラウザ□ Error Loading Chart: No charting libraries found - be sure to include one before your charts チャートライブラリが見つかりません
□ターミナル□ ERROR in ./app/javascript/packs/application.js Module not found: Error: [CaseSensitivePathsPlugin] `/Users/nakaohirokazu/projects/baseball_note/node_modules/Chart.js/dist /chart.esm.js` does not match the corresponding path on disk `chart.js`.@ ./app/javascript/packs/application.js 14:0-19 モジュールが見つかりません ディスク上の対応するパスと一致しません
#■該当のソースコード
□ビュー【records/index.html.erb】□ <p id ="notice"><%= notice %></p> <h1>練習時間</h1> <%= column_chart Record.group_by_day(:created_at, format: "%a").count %> □ビュー【records/new.html.erb】□ <%= form_with model: @record, local: true do |f|%> <%= f.label :practice_time, "練習時間" %><br /> <%= f.text_field :practice_time, id:"#" %><br /> <%= f.label :ball, "球数" %><br /> <%= f.text_field :ball, id:"#" %><br /> <%= f.label :check, "課題" %><br /> <% ["ヘッドが下がる","頭が突っ込む","手首がこねる","軸足に体重が乗らない"].each do |task| %> <%= f.check_box :check, {multiple: true}, task, nil %> <%= task %><br /> <% end %> <%= f.label :content, "詳細" %><br /> <%= f.text_area :content, id:"#" %><br /> <%= f.submit "記録" %> <% end %>
□コントローラー【controllers/record_controller.rb】□ class RecordsController < ApplicationController 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 private def record_params params.require(:record).permit(:practice_time, :ball, :content, check:[]).merge(user_id: current_user.id) end end
□Articlesモデル【models/article.rb】□ class Article < ApplicationRecord belongs_to :user has_one_attached :image validates :post, presence: true end
□usersモデル【models/user.rb】□ class User < ApplicationRecord devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable has_many :records has_many :articles validates :name , presence: true validates :nickname , presence: true validates :pitching , presence: true validates :batting , presence: true validates :position , presence: true end □recordsモデル【models/record.rb】□ class Record < ApplicationRecord belongs_to :user validates :practice_time , presence: true validates :ball , presence: true end
□ルーティング【config/routes.rb】□ Rails.application.routes.draw do devise_for :users, controllers: { registrations: 'users/registrations', sessions: 'users/sessions'} root 'tops#index' resources :records, only: [:index, :new, :create] resources :articles, only: [:index, :new, :create] end
#■試したこと(いずれも解決に至らず)
①Chartkickの公式ページを確認 https://chartkick.com/
②同様の課題が無いかホームページの検索
#■補足情報(FW/ツールのバージョンなど)
rails:6.0.0
データベース:MySQL
gem:「Chartkick」と「groupdate」を使用
あなたの回答
tips
プレビュー