Lorsqu'un utilisateur se connecte à mon site, Devise essaie de mettre à jour le champ dans le modèle utilisateur current_sign_in_at
avec l'heure. Mais il produit cette erreur:NoMethodError: méthode non définie `getlocal 'pour l'objet DateTime
NoMethodError: undefined method `getlocal' for Mon, 08 Nov 2010 03:11:01 +0000:DateTime
[GEM_ROOT]/gems/activesupport-3.0.1/lib/active_support/time_with_zone.rb:75
J'ai trouvé quelques ressources où les gens ont mentionné ce problème. Il y a un issue on Github sans réponse. This page a une solution qui fonctionne dans mon environnement de développement, car elle implique l'édition /lib/active_support/time_with_zone.rb
, mais j'ai besoin d'une solution qui fonctionnera également dans mon environnement de production sur Heroku. Y at-il un moyen que je peux utiliser ma version éditée de /lib/active_support/time_with_zone.rb
sur Heroku? Ou y a-t-il une meilleure façon de traiter le problème?
Voici ce que j'utilise:
Rails 3.0.1
ruby 1.9.2p0 (2010-08-18 revision 29036)
Merci pour la lecture.
Merci pour votre réponse. C'est essentiellement ce que j'ai fait dans mon environnement de développement, en changeant la méthode appropriée dans /lib/active_support/time_with_zone.rb pour utiliser un objet Time. Mais le problème est que je ne sais pas comment utiliser ce correctif dans mon environnement de production, car je ne sais pas comment modifier la bibliothèque Ruby utilisée dans Heroku. – ben
@ben vous pouvez utiliser la technique Ruby Mixin, comme j'ai édité ma réponse ci-dessus – Sergey
Je l'ai fait fonctionner, merci pour votre aide! – ben