Je dois négliger quelque chose de très simple, mais je n'arrive pas à trouver comment rendre un modèle ERB simple avec les valeurs d'une carte de hachage.
Je suis relativement novice en ruby, venant de python. J'ai un modèle ERB (pas HTML), qui doit être rendu avec le contexte qui doit être pris à partir d'une carte de hachage, que je reçois d'une source externe.
Cependant, la documentation de l'ERB, indique que la ERB.result
La méthode prend un binding
. J'ai appris qu'ils sont quelque chose qui contient les contextes de variables dans ruby (quelque chose comme locals()
y globals()
en python, je présume ?). Mais, je ne sais pas comment je peux construire un objet de liaison à partir de ma carte de hachage.
Un peu (un lot en fait), une recherche sur Internet m'a donné ça : http://refactormycode.com/codes/281-given-a-hash-of-variables-render-an-erb-template qui utilise une magie de métaprogrammation Ruby qui m'échappe.
Alors, n'y a-t-il pas une solution simple à ce problème ? Ou existe-t-il un meilleur moteur de création de modèles (non lié à HTML) mieux adapté à ce problème ? (J'ai choisi ERB uniquement parce qu'il est dans la stdlib).
0 votes
Je ne connais pas de moteurs de modèles Ruby qui soient "liés" au HTML ; un modèle est un modèle. Je ne suis pas sûr non plus de ce qui ne va pas dans la solution dont vous donnez le lien - est-ce que le problème est de placer le hash dans le module ?
0 votes
Dave, il n'y a rien de mal à cela en tant que tel. J'ai juste pensé qu'il pourrait y avoir une solution plus élégante pour un problème aussi simple que d'aller jusqu'à utiliser la métaprogrammation.
1 votes
Ça ? stackoverflow.com/questions/1338960/
0 votes
Exemple de travail : gist.github.com/bastman/55f1c5a5bb474e472d5e