2

我们有一个 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。

我已经 ssh'ed 进入盒子,如果我运行,bundle list我可以看到 will_paginate 列出。如果我从上方检查捆绑包位置(/home/..../shared/bundle),will_paginate 就在那里。

我重新启动了独角兽,仍然没有喜悦。我想这是某种路径问题,但我不知道为什么其他宝石可用而新宝石不可用。

有什么想法可以解决这个问题吗?

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

提前致谢

安迪

4

1 回答 1

1

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

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

重新启动对部署很有帮助,但是对 Gemfile 的任何调整都需要我启动/停止。

于 2012-07-30T15:46:22.870 回答