将Gems添加到Gemfile并使用Capistrano部署后的错误

时间:2012-05-23 21:27:25

标签: ruby-on-rails-3 capistrano bundler unicorn

我们正在开发rails 3.2应用程序并使用此railscast中的指令部署到Linux VPS:http://railscasts.com/episodes/335-deploying-to-a-vps,除了我们使用的是rvm而不是rbenv。我们正在使用nginx,unicorn,rvm,rails 3.2和postgres。

初始cap deploy:cold运行正常,我们已经进行了多次部署,因为它没有更改初始部署中的gem。

我们现在添加了will_paginate和相关代码,并照常部署cap deploy。部署运行时没有任何错误,我可以看到对bundle install --path /home/..../shared/bundle --deployment的调用(以及其他一些选项)。

问题在于,当我们访问使用will_paginate的应用页面时,我们会在日志中看到以下错误:NoMethodError undefined method paginate

所以我告诉我,出于某种原因,rails应用程序无法使用gem。

我已经进入框中,如果我运行bundle list,我可以看到will_paginate已列出。如果我从上面检查捆绑位置(/home/..../shared/bundle),will_paginate就在那里。

我重新开始独角兽,仍然没有快乐。我想这是一种路径问题,但我不知道为什么其他宝石可用,但新宝石不可用。

我有什么想法可以调试这个问题吗?

该项目是开源的,位于github上,因此您可以在此处查看各种配置文件:https://github.com/andypike/lagtv

提前致谢

安迪

1 个答案:

答案 0 :(得分:1)

我遇到过同样的问题。我可以让独角兽“刷新”(如果这是正确的话)的唯一方法是手动停止独角兽,然后再次启动它。在我的系统上它是:

    /etc/init.d/unicorn_appname stop
    /etc/init.d/unicorn_appname start

重新启动可以很好地进行部署,但是对Gemfile的任何调整都需要我启动/停止。