🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

3回答

1332閲覧

Mysql2::Error: Table 'gym_app_development.menus' doesn't exist

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2020/12/22 08:38

編集2020/12/22 08:40

###発生している問題・エラーメッセージ
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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ActiveHaseのmodelの記載が間違っていた

ruby

1class Menu < ApplicationRecord

の記載から

ruby

1class Menu < ActiveHash::Base

に変更、ActiveHashを使用した際は上記に書き換えないといけない。
エラーの発生フローとしては、ApplicationRecordのままだったので、普通のモデルとして読み込んでしまい、かつ
--skip-migrationでモデルを作ったので、DBがない。よって上記のエラーが発生してしまった。

投稿2020/12/22 09:38

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ActiveHaseのmodelの記載が間違っていた

ruby

1class Menu < ApplicationRecord

の記載から

ruby

1class Menu < ActiveHash::Base

に変更、ActiveHashを使用した際は上記に書き換えないといけない。
エラーの発生フローとしては、ApplicationRecordのままだったので、普通のモデルとして読み込んでしまい、かつ
--skip-migrationでモデルを作ったので、DBがない。よって上記のエラーが発生してしまった。

投稿2020/12/22 09:25

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

ActiveHaseのmodelの記載が間違っていた

ruby

1class Menu < ApplicationRecord

の記載から

ruby

1class Menu < ActiveHash::Base

に変更、ActiveHashを使用した際は上記に書き換えないといけない。
エラーの発生フロートしては、ActiveHashモデルが ApplicationRecordのままなので、普通のモデルと認識され、かつ--skip-migrationで作成したためDBがない。よって上記のエラーが発生した。

投稿2020/12/22 09:18

編集2020/12/22 09:40
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問