У меня есть модель User с несколькими ссылками на «профили». У пользователя может быть несколько таких профилей, и каждый из этих профилей должен вызывать определенный макет в электронных письмах. Рассмотрим профили Admin
и Worker
Например, в моем контроллере подтверждения Devise мне нужны разные макеты в зависимости от профиля пользователя. Например, если у пользователя
- Профиль администратора: отображать шаблон администратора
- Рабочий профиль: визуализировать рабочий шаблон
- Оба : визуализировать другой шаблон (гибрид)
Поэтому я не могу установить макет для Mailer/Controller, но мне нужно установить его внутри действия контроллера. Предположим, у меня есть вспомогательная функция layout_for_user(), которая может возвращать имя макета для данного пользователя. Как бы я его использовал? Например, с рассылкой Devise?
class MyDeviseMailer < Devise::Mailer
def confirmation_instructions(record, token, options={})
# whange layout based on `layout_for_user(record)`
@token = token
devise_mail(record, :confirmation_instructions, opts)
end
end