Określ wersję ruby ​​z poziomu Railsów

82

Czy istnieje sposób, aby określić, która wersja Ruby działa w Railsach (w Internecie lub za pośrednictwem script/console)? Mam zainstalowany Ruby 1.8.6, ale zainstalowałem również Ruby Enterprise Edition 1.8.7-20090928 i chcę się upewnić, że używa on właściwej instalacji.

Daniel Vandersluis
źródło

Odpowiedzi:

166

Użyj stałej najwyższego poziomu

RUBY_VERSION

inne przydatne stałe najwyższego poziomu to

RUBY_PATCHLEVEL
RUBY_PLATFORM
RUBY_RELEASE_DATE

oto sesja irb:

irb(main):001:0> RUBY_VERSION
=> "1.8.7"
avguchenko
źródło
12

Wypróbuj stałą RUBY_VERSION. Używam tego szeroko, aby określić, czy pracuję pod 1.8 czy JRuby.

Jeśli nie jesteś w trybie produkcyjnym, możesz szybko sprawdzić, naciskając adres URL „/ rails / info / properties”

Mark Westling
źródło
10

Oprócz stałej RUBY_VERSION i znajomych możesz również sprawdzić Config :: CONFIG. Ten skrót zawiera nie tylko numery wersji, ale także mnóstwo innych przydatnych informacji o czasie wykonywania, takich jak ścieżka do pliku binarnego, nazwa hosta, ...

averell
źródło
dziękuję, używam 'puts RbConfig.ruby' dla ruby ​​2.0 i rails 4.0 i zwraca '/usr/local/rvm/rubies/ruby-2.0.0-p247/bin/ruby'
quatermain
9

Użyj, RUBY_VERSIONjak wspominali inni.

Następnie możesz użyć Gem::Versiondo porównania ciągów wersji:

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                                                          
KomodoDave
źródło
Chciałbym, żeby ta odpowiedź tam była - stackoverflow.com/q/11819525/322020 - ale nie mogę jej przenieść, więc proszę o usunięcie tej odpowiedzi i umieszczenie jej tam.
Nakilon