2

私のサーバーのエラーメッセージ

A NameError occurred in..

uninitialized constant CarrierWave::Video app/uploaders/video_uploader.rb:7:in
<class:VideoUploader>'

video_uploader.rb:7 => include CarrierWave::Video

情報 :

  1. 私のローカルでは、動作します(開発および本番モード)! しかし、サーバーにデプロイした後、そのエラーが発生します。

  2. しかし、私のサーバー Rails C プロダクションでは、
    入力 'include CarrierWave::Video' を入力すると、Rails コンソールは 'NameError: uninitialized constant..' ではなく 'Object' を出力します。これは、'include CarrierWave::Video' が成功したことを意味します!!

  3. もちろん、これらの gem(gem 'carrierwave' , gem 'carrierwave-video') は私の Gemfile にあり、Gemfile.lock とバンドルのインストールは成功しています (デプロイ時)
    。 &私のアプリのGEM_PATH、これらの宝石が存在します

  4. 「含める」は機能しないと思います。このように、gem「rmagick」を使用してアップロードされた画像ファイルのサイズを変更すると、「include CarrierWave::RMagick」という行でこのエラーが発生しました。
    もちろん、これはまだ解決されていません..

  5. 純粋に CarrierWave が行「include ~~」を削除するとうまく機能します (例: 画像のアップロードはサイズ変更されません..)

  6. nginx + ユニコーン、linux ubuntu 12.04

助けてください.. T^T
'include CarrierWave::Video' が .rb ファイルでは機能しないのに、Rails コンソールでは機能する理由がわかりません..

追加した :

  1. 私のコード (application.rb.. など) に存在しないこれらの gem について「require」、
    (「carrierwave/video」が必要です。)

  2. 「require 'carrierwave/video'」を application.rb の require 'rails/all' の下に追加すると
    、アプリケーションがすべて動作するようになりました。video_uploader.rb に追加し、 video_uploader を使用してページをリクエストすると、エラー can not such file bullabula..

4

2 に答える 2

2

サーバーがモジュールをリロードしなかったために発生したこのエラー。

Rails サーバーを再起動するだけで、すべてがうまくいきます。ORM をロードした後、CarrierWave をロードしていることを確認してください。

于 2013-11-21T09:39:46.513 に答える
0

追加した場合はこれをgem 'carrierwave'行いますrails generate uploader UPLOADER_NAME

于 2013-10-25T17:09:54.193 に答える