NoMethodError:MyMailer:Class的未定义方法`devise_mail'

时间:2015-06-24 14:53:57

标签: ruby-on-rails devise devise-invitable

我有一个非常简单的自定义邮件程序,我正在使用Devise,但它无法找到辅助方法“devise_mail”。

如果我在类中克隆devise_mail方法(在下面的示例中取消注释),邮件程序将按照我的预期使用自定义指令,因此定制邮件程序肯定会被命中,而其他地方使用的自定义主题行也适用于设计不可思议。

完整错误是:

  

NoMethodError:未定义的方法devise_mail' for MyMailer:Class from /Users/paul/.rvm/gems/ruby-2.0.0-p598/gems/attr_encrypted-1.3.4/lib/attr_encrypted.rb:259:in method_missing'

我错过了什么?

class MyMailer < Devise::Mailer
  protected
  helper :application
  include Devise::Mailers::Helpers
  include DeviseInvitable::Mailer
  default template_path: 'devise/mailer'

  def subject_for(key)
    return super  unless key.to_s == 'invitation_instructions'

    I18n.t('devise.mailer.invitation_instructions.subject', 
      :invited_by => resource.invited_by.try(:firstName) || 'Someone')
  end

  def self.custom_invitation_instructions(record, opts={})
    devise_mail(record, :custom_invitation_instructions, opts)
  end
# Clone of the helper method within this class
#  def devise_mail(record, action, opts={}) 
#    initialize_from_record(record)
#    mail headers_for(action, opts)
#  end
end

提前感谢任何想法。

0 个答案:

没有答案