Ruby渲染特定变量

时间:2015-02-09 10:07:52

标签: ruby-on-rails ruby rendering eruby erubis

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

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

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

任何使其有效的方法?

1 个答案:

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

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