我怎样才能确保Ruby使用我的Rails应用程序中出售的Rack gem?

时间:2012-02-14 09:59:39

标签: ruby-on-rails ruby rack

我的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行使用的是vendored Rack,但第1行使用的是Rack系统。 (response.rb的第57行从Rack调用模块,因此:Utils.set_cookie_header!(header, key, value)。)

我的$LOAD_PATH就像我认为应该是这样,卖出的宝石出现在系统之前。

是的,我打算很快转移到使用Bundler。

1 个答案:

答案 0 :(得分:0)

尝试使用rbenv和ruby-build。它是一个理智的ruby版本管理系统(不像rvm那样疯狂)。你会得到每个文件夹及其所有宝石的红宝石版本。当我遇到alaveteli问题时,我通常会在开发邮件列表中询问他们。我经营罗马尼亚人alaveteli。