Tengo Active Support 3.0.3 instalado y Rails 3.0.3 con Ruby 1.8.7.
Cuando trato de usar 1.week.ago
, obtengo
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 las versiones heredadas están en la suya) con los mismos resultados.
¿Lo que da?
Todo esto está en IRB.
ruby-on-rails
ruby
time
extension-methods
activesupport
griotspeak
fuente
fuente
Respuestas:
Dado que el uso de Rails debería manejar esto automáticamente, asumiré que está intentando agregar Active Support a un script que no es de Rails.
Lea " Cómo cargar extensiones de núcleo ".
Los métodos de Active Support 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 comoSi no le importa la granularidad, puede optar por cargar fragmentos más grandes. Si quieres todo de un solo trago úsalo ...
Para 1.9.2:
Para 1.8.7:
fuente
irbtools
. Incluye todo tipo de ajustes agradables al IRB. Y, si necesita deshabilitarlos temporalmente, llameirb -f
y no los cargará.Puede agregar bibliotecas de forma granular a través del ya mencionado
También hay otro nivel donde puedes
Pero, por el momento, esto no es, por desgracia disponible para
Time
,Date
yDateTime
.Una forma de evitar esto es a
require 'active_support/time'
cuál le daráTime
,Date
yDateTime
cuál resolvería el OP que estaba pidiendo sin requerir todo.El parche My Rails , que agrega
active_support/core_ext/date
ydate_time
, se convirtió en Rails v4.0.0 , por lo que ahora puede solicitarlos individualmente. ¡HURRA!fuente
En mi caso funcionó el siguiente enlace:
https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html
fuente
¿Funciona esto desde la consola? Esto es trabajo para mí:
fuente
Puede:
requerir 'active_support / core_ext'
o:
require 'active_support / all'
fuente