Я думаю, что вы можете использовать метод render_to_string
, но так как он недоступен в модели, вам нужно вызвать его из контроллера:
# model
Email < ActiveRecord::Base
def self.stock_message(recipient, message)
email = Email.create do |e|
e.recipient = recipient
e.message = message
end
end
end
# controller
e = Email.stock_message "foo@bar.baz", render_to_string "email/my_email"
Если вам нужно передать некоторые переменные для визуализации метода,затем просто добавьте :locals => {:var1 => value, :var2 => value2}
.
# view
first line <br />
second line <br />
. В этом примере вы должны хранить представления для электронных писем в каталоге app/views/emails/
.
Однако, как сказал @David, почему бы не использовать почтовую программу, предоставленнуюRails?Это было бы лучшее решение.