我想知道发送邮箱的标准做法.

目前我随机有:

deliver!
deliver
deliver_now
deliver_later!
deliver_later

我明白这些背后的含义,但我想知道大型专业网站的标准/最佳实践是什么?

我做了最坏的打算,因为我的业余代码被大量使用所打击.我认为Deliver_Late(不是"!")是最好的,但我想在我全部更改它们之前进行确认.

推荐答案

所以我基本上从来不使用的!种方法,它们忽略了执行传递和引发错误的配置(在测试/开发中我不需要忽略这些配置),唯一可能需要它们的时候是CI中的某些东西,当您需要向某人发出某些问题的alert ,并且您希望Rails忽略在测试环境中关闭实际发送邮件的事实时.

deliver是旧语法,所以已经十年没用过了.

所以现在我们只剩下deliver_nowdeliver_later了.基本上,我默认使用后者,它以异步方式发送邮箱,因此它不会挂起我的响应,等待SMTP.

我可能在响应时间不重要的地方使用deliver_now,比如在后台作业(job)中,尽管即使在那里,我仍然会将其入队.

Ruby-on-rails相关问答推荐

错误正在被ViewComponent、Ruby on Rails中吞噬

Rails引擎importmap Uncaught ReferenceError:未定义tinymce

ActiveAdmin:的呈现索引表在父级的显示页中有许多资源

Rails/Rspec中的测试文章创建

刺激不添加侦听器以搜索表单输入

这种使用on:的语法在 Ruby on Rails 中意味着什么?

ActiveRecord 错误地转义 JSON 字符串

在 Rails 6.1 升级后,作业(job)规范使用 Minitest::UnexpectedError 包装错误

Rails:序列化数据库中的对象?

如何在 YAML 中声明带有单引号和双引号的字符串?

使用 Rspec 测试 Rails 3.1 可安装引擎

Rails:如何访问 RESTful 助手?

Rails 4 迁移:如何重新排序列

Rails 5:无法从参数中检索哈希值

Ruby on Rails - link_to 按钮 / css

如何使用 Rspec 判断 ActiveJob 中排队的内容

如何更改 Rails 3 控制器中视图文件的默认路径?

没有路由匹配缺少必需的键:[:id]

为什么 Rails 需要 JavaScript 运行时?

错误:删除表违反外键约束.密钥 id 仍然从表中引用(很多)