問題
User
および Cup
というモデルを作成し、rails db:migrate
実行後、
rails c
で実際にモデルができたか確かめたところ、
User
[1] pry(main)> User
=> User (call 'User.connection' to establish a connection)
User
はできた。しかし
[2] pry(main)> Cup
NameError: uninitialized constant Cup
from Users/owner/dev/cofapp/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.4.1/lib/bootsnap/
load_path_cache/core_ext/active_support.rb:76:in `block in load_missing_constant'
Cup
ができない…!
原因
試しにArticle
というモデルのマイグレーションファイルを作成した。
# rails g model Article title:string
Running via Spring preloader in process 11065
invoke active_record
create db/migrate/20190328010859_create_articles.rb
create app/models/article.rb
invoke rspec
create spec/models/article_spec.rb
invoke factory_bot
create spec/factories/articles.rb
ここで気づく。
もしかしてmodels/cup.rb
がない?
一応この状態でrails c
してArticle
を呼ぶと
[1] pry(main)> Article
=> Article (call 'Article.connection' to establish a connection)
となり、うまく呼べた。
そしてmodels/cup.rb
を確認しにいくと、案の定なかった。
実は
migration
ファイル作成用のブランチmigration01
を切って
User
とCup
以外にもmigration
ファイル作成→コミット・プッシュを繰り返してたんですが、
コミットが乱雑になってしまったので、新しいブランチmigration02
を切って、
そこにmigration01
のmigration
ファイル「だけ」を全コピしていたのでした。
migration
ファイルだけコピーしたので、
migration
時に作成されたはずのmodels/cup.rb
が存在せず、
読み込めなかったため、エラーが出てしまったと。
深く反省いたします。。(^ー;)