使用Unicorn生产的回形针:未初始化的常量Paperclip(NameError)

我将Paperclip添加到我的应用程序中,然后尝试使用capistrano部署到我的VPS。 部署成功,但是当我尝试在VPS上访问我的应用程序时,我得到了Rails错误页面。 production.log没有信息,但是unicorn.log有以下错误:

 E, [2013-06-25T19:44:07.372060 #21995] ERROR -- : uninitialized constant Paperclip (NameError) /home/deployer/apps/arcsite/releases/20130625182331/config/initializers/paperclip.rb:1:in `' 

初始化文件是paperclip.rb并具有以下内容:

 Paperclip.interpolates :zone do |attachment, style| attachment.instance.zone_id end 

这是一个允许我使用我想要的文件夹结构的插值器。

如果我删除paperclip.rb初始化文件,我得到一个错误,在我的类中未定义has_attachment ,使得看起来像paperclip gem没有正确加载。

我试图卸载/重新安装gem,但是当我运行gem uninstall paperclip ,它告诉我没有安装paperclip gem。 当我运行bundle show paperclip它确实显示了一个目录(我正在使用RVM),所以我用gem install paperclip手动安装了paperclip gem。 我仍然得到同样的错误。

此应用程序在thin服务器上的开发工作正常。

我的VPS设置:

  • nginx的
  • 独角兽
  • RVM
  • Capistrano的

rails版本:3.2.13 paperclip版本:3.4.2

我跟着Ryan的截屏设置了nginx / unicorn

原来这是一些奇怪的安装行为。 不得不与RVM人员合作并更新了rvm capistrano文档以反映新程序。

所以问题是独角兽没有认出我新安装的gem,我所要做的只是手动停止然后手动启动独角兽,一切都得到了解决。 在安装了paperclip的应用程序部署后,我遇到了同样的问题。

在应用程序的根目录中通过SSH–

 service unicorn_"app name" stop 

其次是

 service unicorn_"app name" start