2
我有一个模板,其中包含用于渲染的各种变量。Ruby渲染特定变量
有没有一种方法可以在模板中呈现特定的变量,无一例外。
e.g. template_content = "My name is <%=firstname%>. I live at <%=location%>"
variable_hash = {firstname: "eric"}
Erubis::Eruby.new(template_content).result(variable_hash)
预期输出:
"My name is eric. I live at <%=location%>"
我的使用情况是第一个变量渲染,并获得呈现的内容。
然而,当我在上面的代码运行提供了异常: “未定义的局部变量或方法location
”
我使用Erubis进行渲染。我对ERB渲染也很好。只需要使用ruby脚本进行渲染。
任何方式使其工作?
当位置数据丢失时,您期望输出什么?你想默认为空字符串? – 2015-02-09 10:11:03
@NeilSlater预期输出:“我的名字是eric,我住在<%=location%>” – abrocks 2015-02-09 10:12:05
它看起来像你想用它来呈现你的用户提供的内容。在这种情况下,我必须告诉你,这不是安全的,恰恰相反。使用ERB模板,模板作者可以执行任意的ruby代码和应用程序中的所有内容,包括访问数据库,窃取所有数据并破坏服务器。你绝对不想运行你的用户提供的erb模板! – 2015-02-09 10:12:52