我正在构建一个Ruby on Rails应用程序,它允许用户编写电子邮件并包含客户名称,地址等字段,这些字段将从我们的数据库中动态绘制。
用户可以最佳地将文本写入from,然后按下按钮以添加名称"然后添加类似<%= name%>的内容。进入表单并在发送时实际上包含客户名称。
我的问题是什么方法才是最好的方法 - 特别是如何解析和存储数据。我应该以某种方式尝试将表单解析为数组并作为单独的字段存储在数据库中? 或者最好存储在文本字段中,并在以后发送消息时将其解析出来。是否有宝石或某种常见的技术?任何帮助将不胜感激。
答案 0 :(得分:1)
您要做的是将带有占位符的电子邮件存储在数据库中,然后在发送之前进行解析。当用户点击“添加名称”时,您应该注入类似{name}
的内容,而不是ERB。然后,您存储的电子邮件将如下所示:
嗨{name}等等
这可以全部打包成Email
模型:
class Email < ActiveRecord::Base
belongs_to :user
attr_accessible :subject, :body
def placeholders
{
"name" => user.name,
"subject" => subject,
"footer" => user.email_footer
}
end
def parsed_email
email = body.dup
placeholders.each { |key, val| email.gsub!("{#{key}}", val) }
email
end
end