我将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设置:
rails版本:3.2.13 回形针版本:3.4.2
答案 0 :(得分:0)
原来这是一些奇怪的安装行为。不得不与RVM人员合作并更新了rvm capistrano文档以反映新程序。
答案 1 :(得分:0)
所以问题是独角兽没有认出我新安装的宝石,我只需要手动停止然后手动启动独角兽,一切都得到了解决。在使用安装了paperclip的应用程序部署后,我遇到了同样的问题。
在应用程序的根目录中通过SSH -
service unicorn_"app name" stop
接着是
service unicorn_"app name" start