【发布时间】:2012-02-14 09:59:38
【问题描述】:
我的 Rails 2.3.x 应用程序失败,因为它使用了错误版本的 Rack (one with a bug)。我的系统上有两个版本的 Rack,一个是供应商的版本(正确的版本),一个是通过 apt-get 安装的系统版本。
为什么使用了错误的版本?这让我特别费解,因为在调用堆栈的早期正确使用了供应商版本。以及如何使它使用正确的版本?
这是我在应用程序失败时得到的堆栈跟踪的摘录:
/usr/lib/ruby/vendor_ruby/rack/utils.rb:202:in `set_cookie_header!'
/home/alaveteli/vendor/gems/rack-1.1.0/lib/rack/response.rb:57:in `set_cookie'
/home/alaveteli/vendor/rails/actionpack/lib/action_controller/response.rb:181:in `set_cookie'
请注意,第 2 行使用的是供应商机架,但第 1 行使用的是系统机架。 (response.rb 的第 57 行从 Rack 调用一个模块,因此:Utils.set_cookie_header!(header, key, value)。)
我的$LOAD_PATH 是我认为应该的,供应的宝石先于系统宝石。
是的,我计划尽快迁移到使用 Bundler。
【问题讨论】:
-
也许尝试卸载您通过 apt-get 安装的那个?
-
这不是这个系统的一个选项——无论如何,我想了解为什么我的供应商版本不能工作,这样我才能确保我的软件可以在任何地方工作。
标签: ruby-on-rails ruby rack