使用 Rails 4 和设计的活动作业

Posted

技术标签:

【中文标题】使用 Rails 4 和设计的活动作业【英文标题】:Active Job with Rails 4 and Devise 【发布时间】:2015-02-15 13:22:45 【问题描述】:

我正在尝试使用 Rails 4 和 Devise 设置活动作业。我愿意接受任何教程,如果有的话(无法通过我的搜索找到。)

我知道有一个Devise Async gem,但它不包括其中的活动作业。也就是说,我发现 this gem 是新开发的,但我收到了 uninitialized constant Devise::Async::Backend::Base (NameError)error。 (可能是我在实施它时很轻松)。

欢迎提出任何建议。我希望我不必创建新的控制器方法。

【问题讨论】:

【参考方案1】:

您可以在所需模型中包含以下代码(通常为User):

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

您可以查看以下页面了解更多详情:http://www.sitepoint.com/devise-authentication-in-depth/

【讨论】:

这似乎是 Devise 的自述文件中官方推荐的技术:github.com/plataformatec/devise#activejob-integration hmmm... 我把它当回一半。根据github.com/plataformatec/devise/issues/…(和方法cmetsgithub.com/plataformatec/devise/blob/…),如果您在用户创建时使用内置设计通知,它可能会比这更复杂。 deliver_later 可能只对以前保存的记录有效,对新记录无效。 感谢大家积极参与。我给了你们分数,因为你们的答案比我最终得到的要好。

以上是关于使用 Rails 4 和设计的活动作业的主要内容,如果未能解决你的问题,请参考以下文章

Rails 4.2 从活动作业中获取延迟的作业 ID

检查延迟的作业是不是在rails中运行

系统分析与设计-第七次作业

系统分析与设计-第七次作业

本周作业

Rails 4 Mailchimp Mandrill 与设计