Debo pasar por alto algo muy simple aquí, pero parece que no puedo entender cómo renderizar una plantilla simple de ERB con los valores de un hash-map.Renderizar una plantilla ERB con valores de un hash
Soy relativamente nuevo en ruby, viniendo de python. Tengo una plantilla ERB (no HTML), que necesito renderizar con el contexto que se tomará de un hash-map, que recibo de una fuente externa.
Sin embargo, la documentación de ERB, establece que el método ERB.result
toma una binding
. Aprendí que son algo que mantienen los contextos variables en ruby (algo así como locals()
y globals()
en python, supongo?). Pero, no sé cómo puedo construir un objeto vinculante fuera de mi hash-map.
un poco (un montón , en realidad) me dio esta buscando en Google: http://refactormycode.com/codes/281-given-a-hash-of-variables-render-an-erb-template, que utiliza un poco de magia rubí metaprogramming que se me escapa.
Entonces, ¿no hay una solución simple a este problema? ¿O hay un mejor motor de plantillas (no relacionado con HTML) más adecuado para esto? (Solo elegí ERB porque está en el stdlib).
No sé de ningún motor de plantilla Ruby que están "atados" a HTML; una plantilla es una plantilla. Además, no estoy seguro de qué hay de malo con la solución a la que se vincula: ¿se trata de obtener el hash en el módulo? –
Dave, nada está mal con eso como tal. Solo que pensé que podría haber una solución más elegante para un problema tan simple que ir al punto de utilizar la metaprogramación. –
esto? http: // stackoverflow.com/questions/1338960/ruby-templates-how-to-pass-variables-into-inlined-erb – tokland