Q
动态内容
6
A
回答
0
如前所述,您可以使用Liquid来替换它,或者您可以尝试使用(http://www.kuwata-lab.com/erubis/)。
另一种方法是更换标签这样的:
ERB.new(your_template.gsub("{{", "<%=").gsub("}}", "%>")).result
你会改变变量的默认打印使用{{ }}
语法。
4
当我发布了这个答案并很快就忘了它,并且upvote提醒了我这个问题,我是一个菜单noob。我成功地使其工作和分享我的解决办法,如果有人在寻找它:
class DynamicTemplateModel < ActiveRecord::Base
def self.parse_template(template, attrs={})
result = template
attrs.each { |field, value| result.gsub!("{{#{field}}}", value) }
# remove anything that resembles a field but did not match a known field name
result.gsub!(/\{\{\.w+\}\}/, '')
return result
end
end
使用:DynamicTemplate.parse_template(body, details)
其中
details = {first_name: user.first_name, last_name: user.last_name, company: user&.company&.name, email_address: user.email}
和
body = "Hi {{first_name}} {{last_name}}, Your company {{company}} is registered with us successfully"
随着方法parse_template
d,新机构将如预期。
我对diofeher solution关于更换字符串的主要担心是安全性。所以用这个来管理。
希望这可以帮助别人。留下任何建议使其更好。谢谢
相关问题
- 1. 动态内容
- 2. ASP.NET动态内容
- 3. jQuery动态内容
- 4. Preg_replace动态内容?
- 5. Rmarkdown动态内容
- 6. 动态JavaScript内容
- 7. WebUserControl动态内容?
- 8. 动态内容mousehover
- 9. 动态html内容
- 10. 动态内容/ CMS
- 11. 动态内容android
- 12. 动态PHP内容
- 13. 动态Ajax内容
- 14. jquery内容动态
- 15. Bootstrap模态动态内容
- 16. 轮动内容动态
- 17. 动态内容绑定ContentControl内容
- 18. 替换动态内容中的动态内容
- 19. JQuery加载动态内容关闭动态内容
- 20. 带动态内容的动态页面
- 21. docpad系统中的静态与动态内容 - 如何创建动态内容?
- 22. dust.js呈现动态内容
- 23. UIWebView动态内容大小
- 24. 网站动态内容
- 25. 动态解析Jade内容
- 26. 动态显示XML内容
- 27. 的JavaScript动态URL内容
- 28. 写内容动态iframe
- 29. 列表内容动态地
- 30. 动态加载内容
恐怕我不能这样做。这是一种非常不安全的方式,并且倾向于SQL注入。我必须用值和'某个'用户'名字'的值代替'first_name'的图像是'User.delete_all'。如果在这里被替换,我的字符串将会像'<%= User.delete_all%>'。我不认为我需要在这里说别的。我的数据库将崩溃,所有数据都消失了。 – Aakanksha
噢,这会被用户使用吗?我认为它只会被你的团队使用。 – diofeher
这对于最终用户准备一个模板来说是必需的,在该模板中标签将被电子邮件应该发送给的用户的数据替换。我分享了我的解决方案。欢迎提出建议。谢谢 – Aakanksha