Подтвердить что ты не робот

Как настроить устройство для использования настраиваемого макета электронной почты?

Когда я говорю "макет", я не имею в виду просто взгляды, я их создаю. Во всех моих почтовых я использую макет по умолчанию. Что я определяю в файле SomeMailer.rb

#some_mailer.rb
class SomeMailer < ActionMailer::Base
  layout 'sometemplate'

Есть ли способ сделать это для Devise Mailer и др.?

4b9b3361

Ответ 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