Y a-t-il un moyen simple de dire à l'intention d'envoyer tous les emails via retarded_job? p>
4 Réponses :
Je n'ai aucune idée du concevoir, mais je suppose que c'est une bijou de tiers que vous ne voulez pas modifier.
Essayez retarded_job_mailer . Vous pouvez étendre le congédiateur par singe les patchisant pour utiliser retarded_job. ou si vous souhaitez envoyer toutes les e-mails d'application via un travail différé par défaut par défaut: p> # config/initializers/delayed_mailer.rb
class ActionMailer::Base
include Delayed::Mailer
end
J'ai essayé votre 2e suggestion qui serait incroyable si cela fonctionnait, mais j'ai eu une erreur "/ Utilisateurs / Bhellman / Sites / Cline / Initialiseurs / Deliered_mai ler.rb: 3: Différées constantes non initialisées :: Mailer (NameError)"
Cela me semble que le mailateur retardé n'a pas été chargé. L'avez-vous spécifié dans gemfile, finalement l'exiger dans Environnement.rb
Alternativement, au lieu d'utiliser le delier retardé :: Mailer GEM, vous pouvez facilement mettre en œuvre et utiliser votre propre action d'action "Méthode de livraison", celle qui ...
faire quelque chose sur les lignes de: p> le retardé :: travail que vous devez implémenter serait alors ... P> C'est ça ... J'espère que cette aide! p> p>
e-mail = :: email.find_by_id (e-mail_id) code> li>
mail :: Message.New (email.message) .Deliver code> li>
ol>
J'ai trouvé qu'aucun de ces réponses ne fonctionnait pour moi. J'utilise Devise 2.0.4 et Rails 3.2.2 avec retarded_job_active_record 0.3.2
The Way Devise parle de faire quelque chose comme celui-ci dans les commentaires du code consiste à remplacer les méthodes de la classe d'utilisateurs. Ainsi, j'ai résolu cela comme ça, et cela fonctionne parfaitement: p>
app / modèles / user.rb p>
Il y a maintenant le projet Devise-Async qui atteint exactement ceci: p>
Stackoverflow.com/Questtions/4125564/Rails-Devise-Delayed-job < / a>
Pour ceux qui recherchent une réponse simple en 2019, check Cette réponse .