##CarrierWaveを使用しデータを登録したら、下記エラーが発生
経緯はこちら
データが格納されたことを確認しようとしたところ、下記エラーが発生しました。
コンソール
irb(main):001:0> User.all
Traceback (most recent call last):
4: from (irb):12
3: from (irb):12:in `rescue in irb_binding'
2: from app/models/user.rb:1:in `<main>'
1: from app/models/user.rb:2:in `<class:Food>'
NameError (uninitialized constant User (call 'User.connection' to establish a connection)::ImageUploader)
##対処法
config/environment.rb
# Load the Rails application.
require_relative 'application'
# Initialize the Rails application.
Rails.application.initialize!
require 'carrierwave/orm/activerecord' #これを追記
上記のように、require 'carrierwave/orm/activerecord'
を追記することで解決。
コンソール
irb(main):002:0> User.all
(1.8ms) SELECT sqlite_version(*)
User Load (0.7ms) SELECT "users".* FROM "users" LIMIT ? [["LIMIT", 11]]
=> #<ActiveRecord::Relation [#<User id: 1, name: "John", age: 20, hobby: "walking", image: "John.jpg", created_at: "2021-05-31 06:22:26", updated_at: "2021-05-31 06:22:26">]>
データが格納されていることが確認できました。
##無事解決…と思ったらブラウザでエラー
ブラウザで開いたところ、ブラウザでもNameError: uninitialized constant User::ImageUploader
とのエラーが発生。
ターミナルを2つ開いて1つをサーバー起動用にしていたので、
Ctrl+Cで一度サーバーを落とし、再起動したところちゃんと表示されました。
####Initializeとは…?な私とあなたへ