Qui devo trascurare qualcosa di molto semplice qui ma non riesco a capire come eseguire il rendering di un semplice modello ERB con valori da una mappa hash.Rendering di un modello ERB con valori da un hash
Sono relativamente nuovo al rubino, proveniente da pitone. Ho un modello ERB (non HTML), che ho bisogno di rendering con contesto che deve essere preso da una mappa hash, che ricevo da una fonte esterna.
Tuttavia, la documentazione di ERB indica che il metodo ERB.result
prende uno binding
. Ho imparato che sono qualcosa che mantiene i contesti variabili in ruby (qualcosa come locals()
e globals()
in python, presumo?). Ma non so come posso costruire un oggetto vincolante dalla mia mappa hash.
un po '(un sacco , in realtà) mi ha dato questa Googling: http://refactormycode.com/codes/281-given-a-hash-of-variables-render-an-erb-template, che utilizza una magia rubino metaprogrammazione che mi sfugge.
Quindi, non esiste una soluzione semplice a questo problema? O c'è un motore di template migliore (non legato all'HTML) più adatto a questo? (Ho scelto solo ERB perché è nello stdlib).
Non so di nessun motori di modello di Ruby che sono "legati" in HTML; un modello è un modello. Inoltre non sono sicuro di cosa c'è di sbagliato nella soluzione a cui si collega: il problema è ottenere l'hash nel modulo? –
Dave, non c'è niente di sbagliato in questo. Solo che pensavo che ci potesse essere una soluzione più elegante per un problema così semplice piuttosto che usare la metaprogrammazione. –
questo? http: // StackOverflow.com/domande/1338960/ruby-templates-how-to-pass-variabili-in-inline-erb – tokland