Определить версию ruby ​​из Rails


82

Есть ли способ определить, какая версия Ruby запущена из Rails (через Интернет или через script/console)? У меня установлен Ruby 1.8.6, но я также установил Ruby Enterprise Edition 1.8.7-20090928 и хочу убедиться, что он использует правильную установку.

Ответы:


166

Используйте константу верхнего уровня

RUBY_VERSION

другие полезные константы верхнего уровня:

RUBY_PATCHLEVEL
RUBY_PLATFORM
RUBY_RELEASE_DATE

вот сеанс irb:

irb(main):001:0> RUBY_VERSION
=> "1.8.7"

12

Попробуйте постоянную RUBY_VERSION. Я широко использую это, чтобы определить, работаю ли я под 1.8 или JRuby.

Кроме того, если вы не в рабочем режиме, вы можете быстро проверить, нажав URL-адрес "/ rails / info / properties"


10

В дополнение к константе RUBY_VERSION и друзьям вы также можете проверить Config :: CONFIG. Этот хеш содержит не только номера версий, но и массу другой полезной информации о времени выполнения, например, путь к двоичному файлу, имя хоста, ...


спасибо, я использую 'put RbConfig.ruby' для ruby ​​2.0 и rails 4.0, и он возвращает '/usr/local/rvm/rubies/ruby-2.0.0-p247/bin/ruby'
quatermain

9

Используйте, RUBY_VERSIONкак указано другими.

Затем вы можете использовать Gem::Versionдля сравнения строк версии:

require 'rubygems' # Only needed for ruby pre-1.9.0 but it's safe for later versions (evaluates to false).
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('1.9.0')
    extend DL::Importable                                    
else                                                         
    extend DL::Importer                                      
end                                                          

Я бы хотел, чтобы этот ответ был там - stackoverflow.com/q/11819525/322020 - но я не могу его переместить, поэтому прошу вас удалить его и опубликовать там.
Nakilon
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.