Ruby on Rails项目,我正在运行Resque来处理电子邮件(特别是设计和设计可邀请的)。Devise电子邮件发送正常(通过API通过邮戳gem发送),但devise_invitable电子邮件在使用undefined method invitation_instructions for #User:0x0xxxxxx Did you mean? invitations_count的Resque中失败。
当通过默认的设计邮件程序发送时,一切正常,但与我的自定义邮件程序失败。我想添加一个内联附件,因此需要一个自定义邮件程序。
自定义Devise Mailer:
class DeviseMailer < Devise::Mailer
helper :application
include Devise::Controllers::UrlHelpers
include Devise::Mailers::Helpers
include DeviseInvitable::Mailer
default template_path: 'devise/mailer'
default from: sender@example.com
layout 'mailer_devise'
before_action :add_inline_attachment!
def reset_password_instructions(record, token, opts={})
super
end
def invitation_instructions(record, token, opts={})
@token = token
devise_mail(record)#, record.invitation_instructions || :invitation_instructions, opts)
end
private
def add_inline_attachment!
attachments.inline['logo.png'] = File.read(Rails.root.join('app/assets/images/logo.png'))
end
end摘要:
def reset_password_instructions -工作正常
def invitation_instructions -失败,出现未定义的方法错误
发布于 2020-01-08 13:43:38
我最终因为其他原因迁移到了Sidekiq。下面是我更新后的Devise Mailer类,运行良好。不需要定义invitation_instructions方法,因为before_action回调正在附加内联图像,这就是我在开始时要做的。
class DeviseMailer < Devise::Mailer
helper :application
include Devise::Controllers::UrlHelpers
include Devise::Mailers::Helpers
include DeviseInvitable::Mailer
default template_path: 'devise/mailer'
default from: ENV['EMAIL_NAME']
layout 'mailer_devise'
before_action :add_inline_attachment!
private
def add_inline_attachment!
attachments.inline['logo.png'] = File.read(Rails.root.join('app/assets/images/logo.png'))
end
endhttps://stackoverflow.com/questions/56035140
复制相似问题