1

我有一个使用 gem 的 rails 2.3.9 应用程序,当我在本地运行它时工作得非常好。但是当我尝试将我的应用程序推送到 heroku 时,它会中断说 gem 激活了 activesupport 3.0.3,并且我的 heroku 应用程序无法运行 activesupport 2.3.9,因为 3.0.3 已经激活......我已经卸载了 activesupport 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 (crash) <== /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems.rb:233:in `activate': 无法激活 activesupport (= 2.3.9 , runtime) 用于 ["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 manifest 一次。这次成功了!我不知道我改变了什么,但我认为您列出宝石的顺序很重要..“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 回答