¿Cómo uso las extensiones principales de soporte activo?

Tengo Active Support 3.0.3 instalado y Rails 3.0.3 con Ruby 1.8.7.

Cuando trato de usar 1.week.ago consigo

 NoMethodError: undefined method 'week' for 1:Fixnum from (irb):2 

Las otras extensiones principales parecen funcionar. Lo probé en la computadora de un amigo (las mismas especificaciones de instalación y versiones heredadas están en él) con los mismos resultados.

¿Lo que da?

Todo esto está en IRB.

Como usar Rails debería manejar esto automáticamente, supongo que estás tratando de agregar soporte activo a un script que no sea de Rails.

Lea ” Cómo cargar extensiones principales “.

Los métodos de Soporte Activo se dividieron en grupos más pequeños en Rails 3, por lo que no terminamos cargando muchas cosas innecesarias con un simple require 'activesupport' . Ahora tenemos que hacer cosas como require 'active_support/core_ext/object/blank'

Si no le importa la granularidad, puede optar por cargar trozos más grandes. Si quieres todo en un gran gulp, usa …

Para 1.9.2:

 rvm 1.9.2 irb -f irb(main):001:0> require 'active_support/all' => true irb(main):002:0> 1.week.ago => 2010-11-14 17:56:16 -0700 irb(main):003:0> 

Para 1.8.7:

 rvm 1.8.7 irb -f irb(main):001:0> require 'rubygems' => true irb(main):002:0> require 'active_support/all' => true irb(main):003:0> 1.week.ago => Sun Nov 14 17:54:19 -0700 2010 irb(main):004:0> 

Puede agregar granularmente bibliotecas a través de lo ya mencionado

 require 'active_support/core_ext/some_class/some_file' 

También hay otro nivel donde puedes

 require 'active_support/core_ext/some_class' 

Pero, por el momento, lamentablemente no está disponible para Time , Date y Date y Time .

Una forma de evitar esto es require 'active_support/time' que le dará la Time , Date y Date y Time que resolvería el OP que estaba solicitando sin requerir todo.


El parche My Rails , que agrega active_support/core_ext/date y date_time , lo convirtió en Rails v4.0.0 , por lo que ahora puede solicitarlos individualmente. ¡HURRA!

Funciona esto desde la consola? Esto es trabajo para mí:

 $ sw_vers ProductName: Mac OS X ProductVersion: 10.6.5 BuildVersion: 10H574 $ rails c Loading development environment (Rails 3.0.3) >> 1.week.ago => Sun, 14 Nov 2010 16:57:18 UTC +00:00 

Usted puede :
requiere ‘active_support / core_ext’
o:
requiere ‘active_support / all’