106 votes

Comment utiliser les extensions principales d'Active Support?

J'ai Active Support 3.0.3 installé et Rails 3.0.3 avec Ruby 1.8.7.

Quand j'essaie d'utiliser 1.week.ago je reçois

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

Les autres extensions de base semblent fonctionner. Je l'ai essayé sur l'ordinateur d'un ami (les mêmes spécifications d'installation et les versions antérieures sont sur le sien) avec les mêmes résultats.

Ce qui donne?

Tout cela se trouve à la CISR.

151voto

the Tin Man Points 69148

Depuis l'utilisation de Rails doit gérer cela automatiquement, je vais supposer que vous essayez d'ajouter un Soutien Actif à un non-Rails de script.

Lire "Comment Charger de Base Extensions".

Le Soutien actif de méthodes s'est cassé en petits groupes dans Rails 3, donc nous n'avons pas le chargement d'un tas de trucs inutiles avec un simple require 'activesupport'. Maintenant, nous devons faire des choses comme require 'active_support/core_ext/object/blank'

Si vous ne se soucient pas de précision, vous pouvez choisir de charger les gros morceaux. Si vous voulez tout dans une seule gorgée d'utilisation...

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

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

30voto

pferdefleisch Points 1951

Vous pouvez granulaire ajout de bibliothèques via le déjà mentionné

require 'active_support/core_ext/some_class/some_file'

Il y a aussi un autre niveau où vous pouvez

require 'active_support/core_ext/some_class'

Mais, pour le moment, ce n'est malheureusement pas disponible pour l' Time, Date et DateTime.

Une façon de contourner cela est d' require 'active_support/time' qui vous donnera Time, Date et DateTime qui permettrait de résoudre l'OP demande sans exiger de tout.

Mise à JOUR

Mon rails patch qui ajoute active_support/core_ext/date et date_time dans les Rails de la v4.0.0, alors maintenant vous pouvez avoir besoin de ces individuellement. YAY!!!

-3voto

张健健 Points 708

Vous pouvez :
nécessite 'active_support / core_ext'
ou :
nécessite 'active_support / all'

-4voto

Paul Schreiber Points 7214

Est-ce que cela fonctionne depuis la console? Cela fonctionne pour moi:

 $ 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
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X