私は私のスコープビューが 考案は、電子メールのビューをオーバーライドしない
をreset_password_instructions.html、私のdevise.rbconfig.scoped_views = true
それは開発に正常に動作し、独自の電子メールを送信しています。ただし、本番環境では、ユーザーが電子メールを受信すると、デバイスからデフォルトのテンプレートが送信されました。
これを実稼働環境で修正するにはどうすればよいですか?私は工夫を使用する場合
私は私のスコープビューが 考案は、電子メールのビューをオーバーライドしない
をreset_password_instructions.html、私のdevise.rbconfig.scoped_views = true
それは開発に正常に動作し、独自の電子メールを送信しています。ただし、本番環境では、ユーザーが電子メールを受信すると、デバイスからデフォルトのテンプレートが送信されました。
これを実稼働環境で修正するにはどうすればよいですか?私は工夫を使用する場合
私はこれは私が自分のメール今
class MyMailer < Devise::Mailer
helper :application # gives access to all helpers defined within `application_helper`.
include Devise::Controllers::UrlHelpers # Optional. eg. `confirmation_url`
default template_path: 'devise/mailer' # to make sure that your mailer uses the devise views
end
を送信するために何をすべきかである、あなたのconfig/initializers/devise.rb
に、あなたは"MyMailer"
にconfig.mailer
を設定することができます。
これで、他のメーラーと同じ方法でMyMailerを使用できるようになりました。余分なヘッダーを追加するために特定のメールをオーバーライドする場合は、メソッドをオーバーライドしてカスタムメソッドの最後にsuperを呼び出して、Deviseのデフォルト動作をトリガーすることができます。
あなたはまた、手動でオプションのハッシュを設定することにより、基本的なヘッダ(REPLY_TO、から、など)のいずれかをオーバーライドすることができます。
def confirmation_instructions(record, token, opts={})
headers["Custom-header"] = "Bar"
opts[:from] = '[email protected]'
opts[:reply_to] = '[email protected]'
super
end
(ユーザーが自分の工夫のモデル名である場合)、プレビューを得るために:
を# test/mailers/previews/my_mailer_preview.rb
# Preview all emails at http://localhost:3000/rails/mailers/my_mailer
class MyMailerPreview < ActionMailer::Preview
def confirmation_instructions
MyMailer.confirmation_instructions(User.first, "faketoken", {})
end
def reset_password_instructions
MyMailer.reset_password_instructions(User.first, "faketoken", {})
end
def unlock_instructions
MyMailer.unlock_instructions(User.first, "faketoken", {})
end
end
私は、これは便利な:)
良かったことを願っていますが、私は、アプリ/メーラー/ my_mailer.rb – pedroooo
と設定config.mailer = "MyMailer" で作成して動作しますか? – pedroooo
はい、それは計画です –