6

Tôi đang cố thiết lập Active Job với Rails 4 và Devise. Tôi mở cho bất kỳ hướng dẫn nào, nếu có (không thể tìm thấy thông qua tìm kiếm của tôi.)Công việc đang hoạt động với Rails 4 và Devise

Tôi biết có Devise Async gem, nhưng không bao gồm Công việc đang hoạt động trong đó. Điều đó nói rằng, tôi đã tìm thấy this gem đang phát triển nhưng tôi gặp phải lỗi uninitialized constant Devise::Async::Backend::Base (NameError). (Có thể là tôi đang được thoáng mát khi thực hiện nó).

Bất kỳ đề xuất nào đều được hoan nghênh. Tôi hy vọng tôi không phải tạo ra các phương pháp điều khiển mới.

Trả lời

13

Bạn có thể bao gồm đoạn mã sau vào mô hình của bạn mong muốn (thường User):

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

Bạn có thể có một cái nhìn tại các trang sau để xem chi tiết hơn: http://www.sitepoint.com/devise-authentication-in-depth/

+1

này dường như được chính thức đề nghị kỹ thuật hiện tại trong README của Devise: https://github.com/plataformatec/devise#activejob-integration – stevo

+0

Cảm ơn bạn đã cập nhật @stevo! – mrstif

+1

hmmm ... Tôi lấy lại một nửa. Theo https://github.com/plataformatec/devise/issues/3550#issuecomment-94248927 (và phương thức nhận xét https://github.com/plataformatec/devise/blob/2f0002a449a8b9616d51127dc6247bfd8414523d/lib/devise/models/authenticatable. rb # L123), nó có thể phức tạp hơn thế này nếu bạn đang sử dụng các thông báo được tạo sẵn trong việc tạo người dùng. 'deliver_later' có thể chỉ hoạt động đối với các bản ghi đã lưu trước đó, chứ không phải bản ghi mới. – stevo

Các vấn đề liên quan