6

Próbuję skonfigurować Active Job z Rails 4 i Devise. Jestem otwarty na każdy samouczek, jeśli istnieje (nie mógł znaleźć poprzez moje przeszukiwanie).Aktywna praca z Rails 4 i Devise

Wiem, że istnieje Devise Async gem, ale nie obejmuje on aktywnego zadania w nim. Powiedział, że znalazłem this gem, który jest świeży w rozwoju, ale dostaję błąd uninitialized constant Devise::Async::Backend::Base (NameError). (Mógłbym być beztroski przy realizacji tego).

Wszelkie sugestie są mile widziane. Mam nadzieję, że nie będę musiał tworzyć nowych metod kontrolera.

Odpowiedz

13

Możesz dołączyć następujący kod w wybranym modelu (normalnie User):

def send_devise_notification(notification, *args) 
    devise_mailer.send(notification, self, *args).deliver_later 
end 

Można spojrzeć na następnej stronie, aby uzyskać więcej szczegółów: http://www.sitepoint.com/devise-authentication-in-depth/

+1

ten pojawia się oficjalnie zalecany technika dostępna teraz w grze Devise's README: https://github.com/plataformatec/devise#activejob-integration – stevo

+0

Dzięki za aktualizację @stevo! – mrstif

+1

hmmm ... Biorę to w połowie. Zgodnie z https://github.com/plataformatec/devise/issues/3550#issuecomment-94248927 (a metoda komentarzy https://github.com/plataformatec/devise/blob/2f0002a449a8b9616d51127dc6247bfd8414523d/lib/devise/models/authenticatable. rb # L123), może to być bardziej skomplikowane, jeśli korzystasz z wbudowanych powiadomień programistycznych podczas tworzenia użytkownika. 'deliver_later' prawdopodobnie działa tylko dla wcześniej zapisanych rekordów, nie nowych rekordów. – stevo