ROEL voor RoR: Toch maar wat anders

Door Gamebuster op dinsdag 1 oktober 2013 11:10 - Reageren is niet meer mogelijk
Categorie: if(post.relatedTo("programming")), Views: 2.249

In mijn vorige blogposts besprak ik een pure-ruby manier om HTML views te bakken, maar uiteindelijk liep ik tegen problemen aan. Zo vergat ik in mijn enthousiasme dat array.each een array met de originele waardes teruggeeft en deze in mijn implementatie dan ook serialized als string in het HTML document stopte.

Ik kon hier omheen gaan hacken, of ervoor kiezen om aangepaste each-methodes te maken, maar ik leg me er voor nu maar bij neer dat het idee gewoon wat meer denkwerk vereist.

Ondertussen sprak ik mijn collega over een ander idee. De oorsprong van het idee (ERB en HAML zijn niet mooi of altijd even handig) is hetzelfde, maar de uitwerking is totaal anders. Het idee is vergelijkbaar met WeldJS: https://github.com/tmpvar/weld

Het idee hiervan is dat je in je views 100% HTML templates hebt, deze door een HTML parser heen pompt, het document bewerkt in Ruby zoals je dat ook met Weld kan (bijv. in je controller) en tot slot het resulterende document doorvoert naar de browser.

Het mooie van dit idee is dat je je volledige website in HTML kan maken zonder ook maar je rails app gemaakt te hebben. Vervolgens kan je het vanuit je rails app een dynamische site maken zonder de HTML files te wijzigen. De designer (of jijzelf) kan dan het HTML document blijven bewerken en verbeteren zonder dat er wijzigingen nodig zijn in de code van je app.