Je pense que c'est une différence Ruby, mais j'utilise la même version 1.8.7 de Ruby. Ceci est lié à this post (pour répondre "pourquoi avez-vous besoin de cela?"). Ce code fonctionne dans 2.2.2Différence entre Rails 2.2 et 2.3.5? ActionMailer.Utils
Loading development environment (Rails 2.2.2)
>> module ActionMailer
>> Utils.normalize_new_lines("blah")
>> end
mais en 2.3.5 il ne
Loading development environment (Rails 2.3.5)
>> module ActionMailer
>> Utils.normalize_new_lines("blah")
>> end
NoMethodError: undefined method `normalize_new_lines' for ActionMailer::Utils:Module
from (irb):2
Quoi de neuf à propos 2.3.5 que ce serait un échec? La méthode est là en 2.3.5, donc cela fonctionne
Loading development environment (Rails 2.3.5)
>> include ActionMailer
>> include Utils
>> normalize_new_lines("blah")
Je sais que cela est probablement une importante différence Rails.
Aussi, je suggère d'inclure le module au lieu de rétablir l'ancien comportement. Si cela change, il y a une raison à cela. À mon humble avis, la mise en œuvre devrait suivre la bibliothèque, au lieu de revenir à la bibliothèque pour suivre notre mise en œuvre. Sinon, d'autres problèmes pourraient survenir à l'avenir. –
@Simone Carletti, depuis le plugin J'utilise "patchs" ActionMailer, j'ai ajouté "include Utils" à ce patch. Ça marche. Est-ce une mauvaise idée? @Zetetic merci de suivre cela. Je serai plus susceptible de lire la source moi-même à l'avenir. –
@yar assurez-vous de ne pas inclure le module deux fois. –