5
2

More than 3 years have passed since last update.

CarrierWave使用でNameError: uninitialized constant User::ImageUploaderというエラー

Posted at

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とは…?な私とあなたへ

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2