Domanda

Ho attiva di sostegno 3.0.3 installato e Rails 3.0.3 con Ruby 1.8.7.

Quando provo ad usare 1.week.ago I get

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

Le altre estensioni di base sembrano funzionare. Ho provato sul computer di un amico (stessa installazione specifiche e le versioni precedenti sono dalla sua) con gli stessi risultati.

Ciò che dà?

Tutto questo è in IRB.

È stato utile?

Soluzione

Dato che l'utilizzo Rails dovrebbe gestire questo automaticamente ho intenzione di assumere che si sta cercando di aggiungere il supporto attivo a uno script non-Rails.

Leggi " Come caricare Nucleo estensioni ".

I metodi di sostegno attivo siamo suddivisi in gruppi più piccoli in Rails 3, in modo da non finire il caricamento di un sacco di cose non necessarie con un semplice require 'activesupport'. Ora dobbiamo fare cose come require 'active_support/core_ext/object/blank'

Se non si cura di granularità, è possibile scegliere di caricare pezzi più grandi. Se si desidera che tutto in un uso sorso ...

Per 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> 

Per 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> 

Altri suggerimenti

È possibile granulare aggiungere librerie tramite il già citato

require 'active_support/core_ext/some_class/some_file'

C'è anche un altro livello in cui è possibile

require 'active_support/core_ext/some_class'

Ma, al momento, questo purtroppo non è disponibile per Time, Date e DateTime.

Un modo per aggirare questo è quello di require 'active_support/time' che vi darà Time, Date e DateTime che risolverebbe il PO chiedeva senza richiedere tutto.


I miei Rails patch , che aggiunge active_support/core_ext/date e date_time , fatto in Rails v4.0.0 , così ora è possibile richiedere questi singolarmente. YAY!

Nel mio caso il seguente link lavorato:

https: / /bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html

$ cat Gemfile.lock | grep -A 1 "BUNDLED WITH"
BUNDLED WITH
   1.17.3

$ gem install bundler -v '1.17.3'

Fa questo lavoro dalla console? Questo è il lavoro per me:

$ 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

È possibile:
require 'active_support / core_ext'
o:
require 'active_support / all'

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top