Я хотел бы отправлять электронные письма из таблицы каждую ночь в полночь, поэтому я создал модель для отслеживания всех отправляемых сообщений. Эта модель Communication
хранит, с которой письмо отправляется, из и содержание письма, отправляемого как html. Пользователь вводит критерии для соответствия, для которых предназначен письмо: состояние, страна, любимый цвет и т. Д., Который возвращает список допустимых совпадений.Рендеринг представления Rails для строки для электронной почты
Этот список допустимых совпадений повторяется и создается новое сообщение для каждого. Как сделать содержимое частичного представления строкой для хранения в базе данных для доставки в полночь.
@communication = Communication.new(params[:communication])
@communication.body = //Render Partial with local variables to string here
8 января 2010: Я реализовал решение, предложенное нейтрино, и мой код выглядит следующим образом:
@communication.message_body = render_to_string(
:partial => "letters/small_letter",
:locals => { :quote => @quote})
Недостаток такого подхода состоит в том, что она требует контекст, поэтому он должен отображаться внутри контроллера, это исключает создание электронной почты с использованием файла рейка. Как указывали другие, подход использования модели связи может ввести некоторую ненужную сложность. В это время, поскольку условия, которые я использую для создания списка получателей, никогда не сохраняются, я решил продолжить использовать модель связи.
Для этого требуется наличие активного контекста представления, насколько я знаю, и, кроме всего прочего, не работает для задач рейка. – tadman
Я передаю частичное из контроллера связи, и поэтому у меня есть контекст. Это решение прекрасно работает, спасибо. – nixterrimus
выглядит так, как метод устарел – avioing