ruby-on-rails - 未初始化的常量 CarrierWave::Video

标签 ruby-on-rails ruby rubygems

我的服务器错误消息

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 Console 打印的不是“NameError: uninitializedconstant..”而是“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 存在这些 gem

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

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

  6. nginx + unicorn,linux ubuntu 12.04

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

添加:

  1. 关于这些 gem 的“要求”在我的代码中不存在(在 application.rb.. 等中),
    (需要“载波/视频”。)

  2. 如果在 application.rb 下面添加“require 'carrierwave/video'”,则需要 'rails/all',
    我的应用程序现在已经全部工作了。如果添加到 video_uploader.rb 并使用 video_uploader 请求页面,则会出现错误,无法使用此类文件 bulabula..

最佳答案

此错误是由您的服务器未重新加载模块引起的。

只需重新启动 Rails 服务器,一切都会正常。 确保在加载 ORM 后加载 CarrierWave。

关于ruby-on-rails - 未初始化的常量 CarrierWave::Video,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19595402/

相关文章:

ruby - dlload' 中的 block 中的救援:无法在运行上限上加载 user32 (Fiddle::DLError)

ruby - 如何使 RVM 中的 gemset 成为默认值?

ruby-on-rails - 禁用 Ruby 中的警告 - 放置位置

mysql - Rails 会创建任何连接到 mysql 的连接池吗?它是单线程设计吗?

ruby-on-rails - 如何阻止访问管理命名空间

ruby-on-rails - 使用 rbenv 和 rails 5.2 修复 'Your Ruby version is 2.4.4, but your Gemfile specified 2.5.1' 错误

php - 即插即用登录系统?

ruby-on-rails - 如何在 Rails 应用程序中重新排序表列?

ruby - 升级 jruby 和 ruby​​mine 版本后无法安装 bundler/gems (SSLError)

mysql - 使用 Passenger : missing the mysql gem 部署 Rails 3 时出现问题