【发布时间】:2012-02-15 19:16:48
【问题描述】:
我必须在这里忽略一些非常简单的事情,但我似乎无法弄清楚如何使用哈希映射中的值呈现简单的 ERB 模板。
我对 ruby 比较陌生,来自 python。我有一个 ERB 模板(不是 HTML),我需要使用从外部源接收的哈希映射中获取的上下文来呈现它。
然而,ERB 的文档指出ERB.result 方法采用binding。我了解到它们是在 ruby 中保存变量上下文的东西(我想在 python 中类似于locals() 和globals()?)。但是,我不知道如何从我的哈希映射中构建一个绑定对象。
一点点(实际上是很多)谷歌搜索给了我这个:http://refactormycode.com/codes/281-given-a-hash-of-variables-render-an-erb-template,它使用了一些让我无法理解的 ruby 元编程魔法。
那么,这个问题没有简单的解决方案吗?还是有更好的模板引擎(不绑定到 HTML)更适合这个? (我只选择了 ERB,因为它在标准库中)。
【问题讨论】:
-
我不知道有任何“绑定”到 HTML 的 Ruby 模板引擎;模板就是模板。也不确定您链接到的解决方案有什么问题 - 是将哈希放入模块的问题吗?
-
戴夫,这样没什么问题。只是我认为对于这样一个简单的问题,可能有比使用元编程更优雅的解决方案。
标签: ruby erb template-engine