Devise で使用している非常に単純なカスタム メーラーを持っていますが、ヘルパー メソッド "devise_mail" が見つかりません。
クラス内で devise_mail メソッドを複製すると (以下のサンプルではコメント解除)、メーラーは期待どおりにカスタム手順で動作するため、カスタム メーラーは間違いなくヒットし、他の場所で使用されているカスタム件名も devise invitable で動作します。
完全なエラーは次のとおりです。
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
ご意見をお寄せいただきありがとうございます。