#ruby-on-rails #ruby-on-rails-3 #actionmailer
#ruby-on-rails #ruby-on-rails-3 #actionmailer
Вопрос:
У меня есть частичный файл, который используется совместно несколькими различными представлениями, и шаблон почтовой программы. Этот частичный компонент должен попытаться использовать сеанс пользователя для сохранения некоторой информации о состоянии, если это возможно.
Определить, существует ли сеанс, кажется, немного проблематично. Внутри частичного определен вызов?Кажется, что при отрисовке почты (session) всегда выдает значение true (это ошибка?), Но попытка получить доступ к «session» любым способом приводит к исключению «undefined method».
На данный момент моя почтовая программа использует переменную экземпляра @for_mailer, чтобы сигнализировать этой части о том, что она отрисовывается по-другому, но это не кажется очень элегантным. Есть ли какой-нибудь простой способ для partial выяснить, визуализируется ли оно почтовой программой или нет, в отличие от визуализации в контексте веб-запроса?
Комментарии:
1. Нет способа обнаружить вызывающего в вызове метода ruby.
3. Оке. Чистого способа сделать это нет.
4. Честно говоря, я бы просто разделил его на две части, одну для почтовых программ и одну для отображения. Я не вижу в этом никакой проблемы.
Ответ №1:
Я также создал бы два частичных файла для этого, но здесь также есть альтернативное решение.
Предполагая, что оно поступает с другого контроллера и действия, вы могли бы проверить параметры[:controller] и params[:action].
Если вы в конечном итоге будете делать это более нескольких раз, у вас, вероятно, получится больше кода, чем просто переписывание partial. Чем вы хотите отличаться между двумя презентациями?