Bestimmen Sie die Ruby-Version in Rails


81

Gibt es eine Möglichkeit zu bestimmen, welche Ruby-Version in Rails ausgeführt wird (entweder im Web oder über script/console)? Ich habe Ruby 1.8.6 installiert, aber ich habe auch Ruby Enterprise Edition 1.8.7-20090928 installiert und möchte sicherstellen, dass die richtige Installation verwendet wird.

Antworten:


161

Verwenden Sie die Konstante der obersten Ebene

RUBY_VERSION

andere nützliche Konstanten der obersten Ebene sind

RUBY_PATCHLEVEL
RUBY_PLATFORM
RUBY_RELEASE_DATE

hier ist eine irb sitzung:

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

12

Versuchen Sie die Konstante RUBY_VERSION. Ich benutze dies ausgiebig, um festzustellen, ob ich unter 1.8 oder JRuby laufe.

Wenn Sie sich nicht im Produktionsmodus befinden, können Sie eine schnelle Überprüfung durchführen, indem Sie auf die URL "/ Rails / Info / Eigenschaften" klicken.


10

Neben der Konstante RUBY_VERSION und Freunden können Sie auch Config :: CONFIG ausprobieren. Dieser Hash enthält nicht nur die Versionsnummern, sondern auch eine Menge anderer nützlicher Laufzeitinformationen, wie den Pfad zur Binärdatei, den Hostnamen, ...


danke, ich benutze 'setzt RbConfig.ruby' für Ruby 2.0 und Rails 4.0 und es gibt '/usr/local/rvm/rubies/ruby-2.0.0-p247/bin/ruby' zurück
quatermain

9

Verwenden Sie RUBY_VERSIONwie von anderen erwähnt.

Sie können dann einen Gem::VersionVersionszeichenfolgenvergleich durchführen:

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                                                          

Ich wünschte, diese Antwort wäre da - stackoverflow.com/q/11819525/322020 - aber ich kann sie nicht verschieben, also bitte ich Sie, diese zu löschen und dort zu posten.
Nakilon
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.