Rails
Rails4

carrierwaveで NameError uninitialized-constantのようなメッセージが出た場合

More than 3 years have passed since last update.

パーフェクトRuby on Railsの6章を写経してて、carrierwaveで画像を添付する処理を実装してたら、なぜか
uninitialized constant Event::EventImageUploaderというエラーが出て上手くいかなかったのでその対応方法を書いておきます。

ちなみに、自分の環境は以下です。

  • Mac OS X 10.9.5
  • Ruby
    • rbenvを利用
      • ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]
  • 今回関連するGem
    • rails (4.1.1)
    • carrierwave (0.10.0)

対応方法

13 Jul 2011 にオープンしてるcarrierwaveのissuesの最後の方のコメント、具体的には、8月7日のfredngoさんのやつで解決しました。

config/application.rbに、autoload_pathsの記述を以下のようにする。

module AwesomeEvents
  class Application < Rails::Application
    config.autoload_paths += Dir[Rails.root.join('app', 'uploaders')]
    # 以下省略

  end
end

修正が完了したら、起動中のWebrick(もしくは利用されてるアプリケーション・サーバー)を再起動します。

これで私の環境では無事にcarrierwaveが利用できるようになりました。