2012-03-06 14 views
7

Estoy tratando de crear una plantilla de haml que utiliza algunos datos de mi aplicación de ruby ​​para completar el contenido. ¿Es posible pasar argumentos a haml para que se muestre correctamente? Así es como yo estoy haciendo mi plantilla haml y que lo hacen:¿Se pueden pasar objetos ruby ​​a haml durante un render?

template = File.open('path/to/template.haml') 
html = Haml::Engine.new(template.read).render 

Entonces, ¿es posible pasar objetos de la escritura local de Ruby en el archivo de plantilla para que la página se procesa de forma correcta? O bien, ¿puedo hacer que el archivo haml capture objetos?

Si esto no funciona, mi única otra idea es construir la plantilla como una cadena local que me parece más tediosa. Entonces, ¿hay un patrón de codificación diferente que sea más eficiente para este trabajo?

Respuesta

5

Sí,

Verificar los documentos: http://haml.info/docs/yardoc/Haml/Engine.html#render-instance_method

  • (String) render (scope = Object.new, locales = {}, & bloque)

pasarlas como locales

+0

Como yo lo entiendo, "locales" Debe haber un hash ... y estoy a punto de embarcarse en conseguir un árbol de objetos JSON en que prestan método Es cierto, no he probado todavía solo, pero, ¿esto es una limitación? – PandaWood

0

Aquí hay un ejemplo de cómo hacerlo usando ruby:

template = File.read('path/to/template.haml') 
html = Haml::Engine.new(template).render(Object.new, :my_object => my_object) 
Cuestiones relacionadas