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

时间:2013-06-25 19:52:42

标签: ruby-on-rails rvm paperclip capistrano unicorn

我将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 `<top (required)>'

初始化程序文件为paperclip.rb,其中包含以下内容:

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

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

如果我删除了paperclip.rb初始值设定项文件,则会在我的类中收到has_attachment未定义的错误,使paperclip gem看起来没有正确加载。< / p>

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

此应用在thin服务器上的开发中运行良好。

我的VPS设置:

  • nginx的
  • 麒麟
  • RVM
  • Capistrano的

rails版本:3.2.13 回形针版本:3.4.2

我关注Ryan's screencast to set up nginx/unicorn

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

service unicorn_"app name" stop

接着是

service unicorn_"app name" start