You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails如何重写Devise Invitable的invite!方法为邀请邮件添加附件

解决步骤

你现有的路由配置没有问题,不需要调整,你需要额外重写devise_invitable绑定的邮件发送器来添加附件逻辑,操作如下:

  • 第一步:创建自定义邮件发送器
    在app/mailers目录下新建custom_devise_mailer.rb文件,内容如下:
class CustomDeviseMailer < Devise::InvitationsMailer
  def invite_instructions(record, token, opts = {})
    # 新增附件逻辑
    attachments['terms.pdf'] = File.read(Rails.root.join('你本地terms.pdf的实际存储路径'))
    # 调用父类方法保留原有全部邮件发送逻辑
    super
  end
end
  • 第二步:修改Devise初始配置绑定自定义邮件器
    编辑config/initializers/devise.rb,找到config.mailer配置项,修改为:
config.mailer = 'CustomDeviseMailer'

如果你之前已经为Devise配置过其他自定义邮件器,直接让你的现有邮件器继承Devise::InvitationsMailer,再添加上面的invite_instructions方法即可。

  • 第三步:重启Rails服务
    配置修改完成后重启服务,之后不管是通过自定义控制器触发邀请,还是手动调用User.invite!方法,发出的邀请邮件都会自动带上你配置的pdf附件,原有邀请邮件的内容、发送逻辑完全不会受影响。

内容的提问来源于stack exchange,提问作者fralps

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:57:02