如何在ror中制作动态模板

时间:2016-05-27 08:23:47

标签: ruby ruby-on-rails-4 html-email spree

我是ROR的新手。我正在进行狂欢宝石扩展。我想制作电子邮件模板动态意味着html.erb文件的内容应该存储在数据库表中。在拍摄邮件时,所有数据和动态数据都要管理。是否有可能在ror以及如何实现这一目标。??

1 个答案:

答案 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)%>

我没有测试,但希望这对你有用