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:未初始化的常量..'而是'Object'。这意味着“包含 CarrierWave::Video”成功!!

  3. 当然,这些 gem(gem 'carrierwave' , gem 'carrierwave-video') 在我的 Gemfile 和 Gemfile.lock 中,并且捆绑安装成功。(部署时)
    所以在 my_app/shared/bundle/ruby/2.0.0, GEM_HOME & GEM_PATH 我的应用程序,存在这些宝石

  4. 我认为“包含”不起作用。因为像这样,当使用 gem 'rmagick' 调整上传的图像文件的大小时,我在'include CarrierWave::RMagick' 行遇到了这个错误。
    当然,这还没有解决..

  5. 纯粹的 CarrierWave 删除了行 'include ~~' 效果很好(例如:图片上传未调整大小..)

  6. nginx + 独角兽,linux ubuntu 12.04

请帮助我.. T^T
我不知道为什么“包含 CarrierWave::Video”在 .rb 文件中不起作用,但在 Rails 控制台中起作用。

添加 :

  1. 我的代码中不存在关于这些宝石的“要求”(在 application.rb.. 等中),
    (需要“carrierwave/video”。)

  2. 如果在下面需要'rails/all'的application.rb中添加“require'carrierwave/video'”,
    我的应用程序现在可以正常工作了。如果添加到 video_uploader.rb 并且我使用 video_uploader 请求页面,则出现错误不能这样的文件 bulabula..

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 回答