2

我有一个模板,其中包含用于渲染的各种变量。

有没有办法我可以毫无例外地在模板中呈现特定变量。

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​​ 脚本进行渲染。

有什么办法让它工作吗?

4

1 回答 1

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

不确定这是否是一个好的解决方案,可能有更好的解决方案。

于 2015-02-09T14:39:06.423 回答