ruby-on-rails - Ruby 渲染特定变量

标签 ruby-on-rails ruby rendering eruby erubis

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

有没有一种方法可以毫无异常(exception)地在模板中呈现特定变量。

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

有什么办法让它起作用吗?

最佳答案

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

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

关于ruby-on-rails - Ruby 渲染特定变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28407225/

相关文章:

wpf - 巨大的 WPF 视觉效果的不精确渲染 - 任何解决方案?

ios - 如何在 Swift 中将 Microsoft Word 文档渲染为 .png 图像

reactjs - 渲染组件与返回 JSX 的函数的优点 [React]

ruby-on-rails - 使用 has_many 的集合,:through relationships

ruby-on-rails - 如何跨多个应用程序共享 rspec 示例?

ruby-on-rails - Rails 3序列化

ruby-on-rails - Rails EXCEPT 查询(过滤出联合表中存在的记录)

ruby - 除 gem install 之外的任何其他安装 Heroku 的方法

ruby-on-rails - 具有多个字段的 simple_form 输入

mysql - 从三个嵌套表中选择所有行