检查宝石版本号

时间:2011-08-04 20:32:34

标签: ruby-on-rails

我的设置:Rails 3.0.9,Ruby 1.9.2

我想通过Rails控制台检查我的应用程序的gem版本。在我的gemfile中,我有

gem 'rack', '1.2.3'

之后运行捆绑包安装。在Rails控制台中,

>> Rack.version
=> "1.1"

知道为什么吗?

更新

Gemfile.lock

GEM
  remote: http://rubygems.org/
  specs:
    actionpack (3.0.9)
      ...
      rack (~> 1.2.1)
      ...

    rack (1.2.3)

    rack-mount (0.6.14)
      rack (>= 1.0.0)

    warden (1.0.4)
      rack (>= 1.0)

DEPENDENCIES
...  
rack (= 1.2.3)
...

gemfile.lock中列出了几种机架版本。

3 个答案:

答案 0 :(得分:22)

Rack.version

将返回协议版本,

Rack.release

可能就是你在寻找的东西。

https://github.com/rack/rack/blob/master/lib/rack.rb#L14

否则:

Gem.loaded_specs["rack"]

示例:

ruby-head :006 > Gem.loaded_specs["rack"]
 => #<Gem::Specification name=rack version=1.3.2> 
ruby-head :007 > Gem.loaded_specs["rack"].version
 => #<Gem::Version "1.3.2"> 
ruby-head :008 > Gem.loaded_specs["rack"].version.to_s
 => "1.3.2"

答案 1 :(得分:0)

每个宝石都有:: VERSION常量。 因此,只需在控制台中使用Rack :: VERSION或OpenSSL :: VERSION,它就会为您提供该控制台中加载的gem的版本。

答案 2 :(得分:-2)

也许您安装了多个版本的机架,尝试运行gem uninstall rack并查看它是否提供了两个选项,Rack 1.1和Rack 1.2.3。如果是这样,请选择卸载Rack 1.1。

如果仍然无效,只需卸载Rack并尝试运行bundle update。

当我使用多个rake版本0.8.7和0.9.2时,我遇到了这个问题,这对我很有帮助。