我是ROR的新手。我正在进行狂欢宝石扩展。我想制作电子邮件模板动态意味着html.erb文件的内容应该存储在数据库表中。在拍摄邮件时,所有数据和动态数据都要管理。是否有可能在ror以及如何实现这一目标。??
答案 0 :(得分:1)
是的,您可以这样做,只需在DB中替换动态变量:
您已成功为{service_requests_category}放置了服务请求编号{service_requests_id}。我们的代表将尽快与您联系。谢谢。“这个字符串存储在数据库中。
并创建一个帮助
def replace_dynamic_variables(str,variables=nil)
variables.each do |k ,v|
str = str.gsub('{' + k.to_s + '}',v || "")
end
return str.html_safe
end
并在邮件程序上准备如下变量:
class yourMailer < ApplicationMailer
def send_service_email(args) # email sending method
@variables = {}
# Other code like subject, to, from etc.
@db_string = #string you get form DB
@variables[:service_requests_id] = @service_requests.id
@variables[:service_requests_category] = @service_requests.category.name
#mail to:
end
end
并在send_service_email.html.erb / send_service_email.txt.erb中根据您的情况调用
<%= replace_dynamic_variables(@db_string,@variables)%>
我没有测试,但希望这对你有用