Как настроить устройство для использования настраиваемого макета электронной почты?
Когда я говорю "макет", я не имею в виду просто взгляды, я их создаю. Во всех моих почтовых я использую макет по умолчанию. Что я определяю в файле SomeMailer.rb
#some_mailer.rb
class SomeMailer < ActionMailer::Base
layout 'sometemplate'
Есть ли способ сделать это для Devise Mailer и др.?
Ответы
Ответ 1
Нашел ответ, сидящий в вики-дизайне Github,
Чтение, которое помогает.; -)
config.to_prepare do
Devise::Mailer.layout "simple" # simple.haml or simple.erb
Devise::Mailer.helper :mailer
end
Вот ссылка на страницу wiki: Как создать пользовательские макеты
Ответ 2
# Devise::Mailer inherits from ActionMailer::Base other mail will work fine.
## app/mailers/deviser_mailer.rb
class DeviseMailer < Devise::Mailer
layout 'email'
default from: I18n.t("mailer.default.from")
end
## then in config/initializer/devise.rb
# Configure the class responsible to send e-mails.
config.mailer = "DeviseMailer"
Обязательно перезагрузите сервер рельсов при изменении инициализатора.
Ответ 3
В devise.rb также есть опция parent_mailer, скажем, вы отправляете электронные письма вне их, по умолчанию этот параметр имеет значение ActionMailer:: Base, но если у вас есть ApplicationMailer, который уже наследуется от ActionMailer:: Base, вы можете изменить parent_mailer на это и получить все ваши макеты и < сильные > конфигурации из коробки.
В любом случае это намного проще использовать, чтобы поддерживать рельсы в макетах в ваших приложениях, если вы не хотите что-либо менять в редакторе почтовой программы разработки.
# devise.rb
config.parent_mailer = 'ApplicationMailer'
# application_mailer.rb
class ApplicationMailer < ActionMailer::Base
# if you need to add a helper module for example
add_template_helper(EmailHelper)
layout 'mailer'
end
Ответ 4
Попробуйте повторно открыть Devise:: Mailer class:
class Devise::Mailer < ActionMailer::Base
layout 'sometemplate'
end