我的服务器错误消息
A NameError occurred in..
uninitialized constant CarrierWave::Video app/uploaders/video_uploader.rb:7:in
<class:VideoUploader>'
video_uploader.rb:7 => include CarrierWave::Video
信息:
在我本地,它有效(开发和生产模式)!但部署到服务器后,出现该错误。
但是在我的服务器rails c 生产中,
输入“include CarrierWave::Video”,然后 Rails Console 打印的不是“NameError: uninitializedconstant..”而是“Object”。这意味着“包含 CarrierWave::Video”成功!!当然,这些gem(gem 'carrierwave' , gem 'carrierwave-video')在我的Gemfile和Gemfile.lock中并且捆绑安装成功。(部署时)
所以在my_app/shared中我的应用程序的/bundle/ruby/2.0.0、GEM_HOME 和 GEM_PATH 存在这些 gem我认为“包含”不起作用。因为像这样,当我使用 gem 'rmagick' 调整上传的图像文件大小时,我在 'include CarrierWave::RMagick' 行遇到了这个错误。
当然,这还没有解决..纯粹的 CarrierWave 删除了“include ~~”行效果很好(例如:图像上传未调整大小..)
nginx + unicorn,linux ubuntu 12.04
请帮帮我..T^T
我不知道为什么“include CarrierWave::Video”在 .rb 文件中不起作用,但在 Rails 控制台中起作用。
添加:
关于这些 gem 的“要求”在我的代码中不存在(在 application.rb.. 等中),
(需要“载波/视频”。)如果在 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/