J'ai installé Active Support 3.0.3 et Rails 3.0.3 avec Ruby 1.8.7.
Quand j'essaye 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 héritées sont sur le sien) avec les mêmes résultats.
Ce qui donne?
Tout cela est dans IRB.
ruby-on-rails
ruby
time
extension-methods
activesupport
griotspeak
la source
la source
Réponses:
Étant donné que l'utilisation de Rails devrait gérer cela automatiquement, je vais supposer que vous essayez d'ajouter Active Support à un script non-Rails.
Lisez « Comment charger les extensions principales ».
Les méthodes d'Active Support ont été divisées en petits groupes dans Rails 3, nous ne finissons donc pas par charger beaucoup de choses inutiles avec un simple
require 'activesupport'
. Maintenant, nous devons faire des choses commeSi vous ne vous souciez pas de la granularité, vous pouvez choisir de charger de plus gros blocs. Si vous voulez tout en une seule grande gorgée, utilisez ...
Pour 1.9.2:
Pour 1.8.7:
la source
irbtools
. Il inclut toutes sortes de jolis ajustements à l'IRB. Et, si vous avez besoin de les désactiver temporairement, appelezirb -f
et il ne les chargera pas.Vous pouvez ajouter de manière granulaire des bibliothèques via le déjà mentionné
Il y a aussi un autre niveau où vous pouvez
Mais, pour le moment, ce n'est malheureusement pas disponible pour
Time
,Date
etDateTime
.Un moyen de contourner ce problème est celui
require 'active_support/time'
qui vous donneraTime
,Date
etDateTime
qui résoudrait le PO demandé sans avoir besoin de tout.Le patch My Rails , qui ajoute
active_support/core_ext/date
etdate_time
, en fait Rails v4.0.0 , vous pouvez donc maintenant en avoir besoin individuellement. YAY!la source
Dans mon cas, le lien suivant a fonctionné:
https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html
la source
Cela fonctionne-t-il depuis la console? Cela fonctionne pour moi:
la source
Vous pouvez:
exiger 'active_support / core_ext'
ou:
exiger 'active_support / all'
la source