1

gem を使用する Rails 2.3.9 アプリがあり、ローカルで実行すると完全に正常に動作します。しかし、アプリをherokuにプッシュしようとすると、gemがactivesupport 3.0.3をアクティブにし、3.0.3がすでにアクティブになっているため、herokuアプリがactivesupport 2.3.9を実行できないと言って壊れます...アクティブサポートをアンインストールしました3.0.3 をローカルにインストールし、gem をローカルに再インストールしましたが、heroku ではまだ動作しません。

  1. activesupport3.0.3 は本当にアンインストールされましたか (sudo gem uninstall activesupport -v 3.0.3)?
  2. gem が heroku ではなくローカル環境で機能するのはなぜですか?
  3. heroku (git push heroku master) にプッシュして .gem ファイルを読み取ると、gem のインストールを開始しても、heroku に activesupport 3.0.3 をインストールし続けるのはなぜですか??

私のherokuログ:

==> dyno-3352306.log (クラッシュ) <== /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems.rb:233:in `activate': can't activate activesupport (= 2.3.9 、ランタイム) ["rails-2.3.9"] の場合、["THISGEM-1.2.3"] の activesupport-3.0.3 は既にアクティブ化されています (Gem::LoadError)

誰かが私にいくつかのガイダンスを与えることができますか?? あなたの助けは大歓迎です!

.gems

rails --version 2.3.9
will_pagnate --version x.x.x
THISGEMTHATDEPENDSONACTIVESUPPORT&HPRICOT--version 1.2.3 --ignore-dependencies
hpricot --version x.x.x
4

1 に答える 1

0

gemfile bundlerメソッドを試し、ローカルと展開の両方でwill_pagnateが壊れた後、.gemsマニフェストをもう一度確認しました。そして今回はうまくいきました!! 何を変更したかはわかりませんが、宝石をリストする順序が重要だと思います。「THISGEMTHATDEPENDSONACTIVESUPPORT&HPRICOT」は、hpricotの後に実行する必要があります。そのため、herokuはgemsファイルを読み取るときに、「THISGEMTHATDEPENDSONACTIVESUPPORT&HPRICOT」をインストールする前に依存関係をインストールします。私の最終的な.gemsファイルは次のようになり、機能しました。誰かがこれが事実であることを確認できますか?驚くべきことに、私はこれに2日間立ち往生しましたが、宝石をリストする順序を見つけるだけでした。

rails --version 2.3.9
will_pagnate --version x.x.x
hpricot --version x.x.x
THISGEMTHATDEPENDSONACTIVESUPPORT&HPRICOT--version 1.2.3 --ignore-dependencies
于 2010-12-02T11:42:51.917 に答える