Rendre une ERB modèle avec des valeurs de hachage

Je dois être oublié quelque chose de très simple ici, mais je n'arrive pas à comprendre comment rendre une simple ERB modèle avec des valeurs de hachage-carte.

Je suis relativement nouveau à ruby, venant de python. J'ai une ERB modèle (pas en HTML), dont j'ai besoin rendus avec le contexte à partir d'un hash-carte, que je reçois à partir d'une source externe.

Toutefois, la documentation de ERB, les états qui la ERB.result méthode prend un binding. J'ai appris qu'ils sont quelque chose que tenir la variable contextes en ruby (quelque chose comme locals() et globals() en python, je suppose?). Mais, je ne sais pas comment je peux construire un objet de liaison de mon hash-carte.

Un peu (un beaucoup, en fait) une recherche sur google m'a donné ceci: http://refactormycode.com/codes/281-given-a-hash-of-variables-render-an-erb-template, qui utilise ruby métaprogrammation magie qui m'échappe.

Donc, n'est-ce pas là une solution simple à ce problème? Ou est-il un meilleur moteur de template (non liées à HTML) mieux adapté pour cela? (J'ai seulement choisi ERB parce que ses dans la stdlib).

  • Je ne sais pas du tout Ruby moteurs de template qui sont "attachés" au format HTML; un modèle est un modèle. Aussi ne savez pas quel est le problème avec la solution que vous liez-est de la question de l'obtention de la valeur de hachage dans le module?
  • Dave, Rien de mal à cela tant que tel. Juste que je pensais qu'il pouvait être une solution plus élégante pour un problème simple que d'aller à la mesure de l'utilisation de la métaprogrammation.
  • cette? stackoverflow.com/questions/1338960/...
  • Exemple: gist.github.com/bastman/55f1c5a5bb474e472d5e