2012-03-06 2 views
7

Sto provando a creare un modello haml che utilizza alcuni dati della mia app rubino per riempire alcuni contenuti. È possibile passare argomenti in haml per renderlo correttamente? Ecco come sto ottenendo il mio modello Haml e rendendola:Puoi passare oggetti ruby ​​a haml durante un rendering?

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

Quindi, è possibile passare oggetti dallo script di Ruby locale nella file del modello in modo che la pagina viene visualizzata correttamente? Oppure, posso avere il file haml per inserire oggetti?

Se questo non funziona, la mia unica altra idea è costruire il modello come una stringa locale che mi sembra più noiosa. Quindi, c'è un diverso schema di codifica che è più efficiente per questo lavoro?

risposta

5

Sì,

Controllare la documentazione: http://haml.info/docs/yardoc/Haml/Engine.html#render-instance_method

  • (String) render (portata = Object.new, locali = {}, & blocco)

passarli come locali

+0

Da quanto ho capito, "locali" deve essere un hash ... e sono in procinto di imbarcarsi su come ottenere un albero JSON di oggetti in che rendono il metodo Certo, non l'ho appena provato ancora, ma questa è una limitazione allora? – PandaWood

0

Ecco un esempio di come farlo utilizzando rubino:

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