Determinar la versión ruby ​​desde Rails


81

¿Hay alguna forma de determinar qué versión de Ruby se está ejecutando desde Rails (ya sea en la web o mediante script/console)? Tengo Ruby 1.8.6 instalado pero también instalé Ruby Enterprise Edition 1.8.7-20090928 y quiero asegurarme de que está usando la instalación correcta.

Respuestas:


164

Utilice la constante de nivel superior

RUBY_VERSION

Otras constantes de nivel superior útiles son

RUBY_PATCHLEVEL
RUBY_PLATFORM
RUBY_RELEASE_DATE

aquí hay una sesión de irb:

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

12

Prueba la constante RUBY_VERSION. Utilizo esto ampliamente para determinar si estoy ejecutando bajo 1.8 o JRuby.

Además, si no está en modo de producción, puede hacer una verificación rápida presionando la URL "/ rails / info / properties"


10

Además de la constante RUBY_VERSION y sus amigos, es posible que también desee consultar Config :: CONFIG. Este hash contiene no solo los números de versión, sino también un montón de otra información útil en tiempo de ejecución, como la ruta al binario, el nombre de host, ...


gracias, uso 'put RbConfig.ruby' para ruby ​​2.0 y rails 4.0 y devuelve '/usr/local/rvm/rubies/ruby-2.0.0-p247/bin/ruby'
quatermain

9

Úselo RUBY_VERSIONsegún lo mencionado por otros.

Luego puede usar Gem::Versionpara hacer una comparación de cadenas de versiones:

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                                                          

Desearía que esta respuesta estuviera allí, stackoverflow.com/q/11819525/322020 , pero no puedo moverla, así que le pido que elimine esta y la publique allí.
Nakilon
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.