【发布时间】:2012-06-21 07:24:37
【问题描述】:
我想在每晚午夜从一张桌子发送电子邮件,因此我创建了一个模型来跟踪所有要发送的通信。这个Communication 模型存储了信件的收件人、发件人以及要以html 格式发送的信件内容。用户输入一个标准来匹配这封信的目标对象:州、国家、最喜欢的颜色等等,这会返回一个可接受的匹配项列表。
这个可接受的匹配列表被迭代,并为每个生成一个新的通信。如何将部分视图的内容呈现为字符串以存储在数据库中以便在午夜交付。
@communication = Communication.new(params[:communication])
@communication.body = //Render Partial with local variables to string here
2010 年 1 月 8 日:我已经实现了 neutrino 提出的解决方案,我的代码如下所示:
@communication.message_body = render_to_string(
:partial => "letters/small_letter",
:locals => { :quote => @quote})
这种方法的缺点是它需要一个上下文,因此它必须在控制器中呈现,这排除了使用 rake 文件生成电子邮件的可能性。正如其他人指出的那样,使用通信模型的方法可能会引入一些不必要的复杂性。目前,由于我用于生成收件人列表的条件从未存储过,因此我选择继续使用通信模型。
【问题讨论】:
标签: ruby-on-rails