###発生している問題・エラーメッセージ
Mysql2::Error: Table 'gym_app_development.menus' doesn't exist
前提・実現したいこと
現在、トレーニング日記アプリの作成中で、ActiveHashを用いて、トレーニングメニューを表示選択、保存を行たい。
試したこと
userを参照するreferencesメソッドが、userテーブルが作成される前に読み込まれていた可能性があるため、
再度、DBを作成。rails db:drop, create, migrateの順で実施したが解決できていない。
また、外部キーを外して作成したが、同じエラーが発生する。
該当ページ
ruby
1class Record < ApplicationRecord 2 extend ActiveHash::Associations::ActiveRecordExtensions 3 belongs_to :menu 4 5 belongs_to :user 6 7 with_options presence: true do 8 validates :menu_id 9 validates :rep 10 validates :set 11 end 12 validates :menu_id, numericality: { odd: true } 13end
ruby
1class Menu < ApplicationRecord 2 self.data = [ 3 { id: 1, name: '--' }, 4 { id: 3, name: '--Chest--' }, 5 { id: 2, name: 'ベンチプレス' }, 6 { id: 4, name: 'インクラインベンチプレス' }, 7 { id: 6, name: 'ダンベルプレス' }, 8 { id: 8, name: 'インクラインダンベルプレス' }, 9 { id: 10, name: 'ケーブルクロス' }, 10 { id: 12, name: 'ペックデック' }, 11 { id: 14, name: 'ディップス' }, 12 { id: 5, name: '--Back--' }, 13 { id: 16, name: 'ラットプル' }, 14 { id: 18, name: 'チンニング' }, 15 { id: 20, name: 'シーデットロウ' }, 16 { id: 22, name: 'ワンハンドロウ' }, 17 { id: 24, name: 'ベントオーバーロウ' }, 18 { id: 26, name: 'デッドリフト' }, 19 { id: 7, name: '--Shoulder--' }, 20 { id: 28, name: 'ショルダープレス' }, 21 { id: 30, name: 'バックプレス' }, 22 { id: 32, name: 'アップライトロウ' }, 23 { id: 34, name: 'フロントレイズ' }, 24 { id: 36, name: 'サイドレイズ' }, 25 { id: 38, name: 'リアレイズ' }, 26 { id: 9, name: '--Biceps--' }, 27 { id: 40, name: 'バーベルカール' }, 28 { id: 42, name: 'ダンベルカール' }, 29 { id: 44, name: 'インクラインダンベルカール' }, 30 { id: 46, name: 'ケーブルカール' }, 31 { id: 48, name: 'プリチャーカール' }, 32 { id: 11, name: '--Triceps--' }, 33 { id: 50, name: 'トライセッププルダウン' }, 34 { id: 52, name: 'ダンベルフレンチプレス' }, 35 { id: 54, name: 'ライイングトライセップエクステンション' }, 36 { id: 56, name: 'トライセップキックバック' }, 37 { id: 13, name: '--Forearms--' }, 38 { id: 58, name: 'リストカール' }, 39 { id: 60, name: 'リバースリストカール' }, 40 { id: 15, name: '--Leg--' }, 41 { id: 62, name: 'スクワット' }, 42 { id: 64, name: 'レッグプレス' }, 43 { id: 66, name: 'レッグエクステンション' }, 44 { id: 68, name: 'レッグカール' }, 45 { id: 70, name: 'レッグアダクション' }, 46 { id: 72, name: 'シシースクワット' }, 47 { id: 74, name: 'カーフレイズ' }, 48 { id: 17, name: '--Abs--' }, 49 { id: 76, name: 'シットアップ' }, 50 { id: 78, name: 'レッグレイズ' }, 51 { id: 80, name: 'アブドミナルベンチクランチ' }, 52 { id: 82, name: 'ケーブルクランチ' }, 53 ] 54 include ActiveHash::Associations 55 has_many :records 56end
ruby
1<%= form_with(model: @record, local: true) do |form| %> 2 3 <div class="title"> 4 <%= form.label :title, "タイトル" %> 5 <%= form.text_field :title %> 6 </div> 7 8 <div class="time"> 9 <%= form.label :time, "時間" %> 10 <%= form.datetime_select :start_time %> 11 </div> 12 13 <div class="memo"> 14 <%= form.label :memo, "memo" %> 15 <%= form.text_field :memo %> 16 </div> 17 18 <div class="menu"> 19 <%= form.label :menu_id, "種目" %> 20 <%= form.collection_select(:menu_id, Menu.all, :id, :name, {}) %> 21 </div> 22 23 <div class="rep"> 24 <%= form.label :rep, "レップ数" %> 25 <%= form.select :rep, [*(0..30)]%> 26 </div> 27 28 <div class="set"> 29 <%= form.label :set, "セット数" %> 30 <%= form.select :set, [*(1..20)]%> 31 </div> 32 33 <div class="weight"> 34 <%= form.label :weight, "重量" %> 35 <%= form.select :weight, [*(1..200)]%> 36 </div> 37 38 <div class="submit"> 39 <%= form.submit %> 40 </div> 41 42<% end %>
ruby
1class CreateRecords < ActiveRecord::Migration[6.0] 2 def change 3 create_table :records do |t| 4 t.datetime :start_time, null: false 5 t.string :title, null: false 6 t.text :memo, null: false 7 t.integer :menu_id, null: false 8 t.integer :rep, null: false 9 t.integer :set, null: false 10 t.integer :weight, null: false 11 t.references :user, null: false 12 t.timestamps 13 end 14 end 15end
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。