我有一个模板,其中包含各种用于渲染的变量。
有没有办法可以毫无例外地在模板中呈现特定变量。
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%>"
我的用例是使用第一个变量渲染并获取渲染内容。
然而,当我在代码上面运行它会给出异常:
&#34;未定义的局部变量或方法location
&#34;
我正在使用Erubis进行渲染。我对ERB渲染也很好。只需要使用ruby脚本进行渲染。
任何使其有效的方法?
答案 0 :(得分:1)
module MyModule
def method_missing(method_name)
super
rescue NameError => e
return method_name
end
end
eb = Erubis::Eruby.new('My name is <%=firstname%>. I live at <%=location%>')
eb.extend(MyModule)
result = eb.result(:firstname =>'Ab')
puts result
不确定这是否是一个好的解决方案,可能有更好的解决方案。