使用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