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は問題なく実行され、最初の展開から宝石を変更することなく、いくつかの展開を行いました。

これで will_paginate と関連コードを追加し、いつものように でデプロイしましたcap deploy。展開はエラーなしで実行され、bundle install --path /home/..../shared/bundle --deployment(他のいくつかのオプションを使用して) への呼び出しを確認できます。

問題は、will_paginate を使用するアプリのページにアクセスすると、ログに次のエラーが表示されることです: NoMethodError undefined method paginate.

つまり、なんらかの理由で、Gem が Rails アプリで利用できないということです。

ボックスに SSH で接続しました。実行すると、bundle listwill_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 に答える