Rails & Dreamweaver & Masterview

So schön Sprachen wie RubyOnRails auch sind, es gibt einen kleinen Nachteil: Das Design der Oberfläche ist eher suboptimal. Eigentlich würde man ja gerne „mal eben“ mit einem WYSIWYG-Tool das Benutzerinterface malen, das klappt aber leider nicht.

In Rails definiert man ein Eingabefeld z.B. so :
< %= text_field("user","name") %>

Rails baut daraus anschließend die HTML-Sicht. Das ist zwar alles schon und praktisch, sieht nur in einem HTML-Editor doof aus. Jetz mag man zwar einwenden, dass echte Programmierer keine WYSIWYG-Editor benutzen, aber echte Programmierer würden eh nicht Rails oder HTML programmieren.

Die Lösung lautet: Masterview . Masterview ist quasi der Leim zwischen Dreamweaver (oder nvu oder was für ein HTML Editor auch immer) und Rails. Kurz ausgedrückt versteckt Masterview die Rails-Kommandos in XML Tags.

Unser obiges Beispiel sieht dann so aus:
input name=“name“ type=“text“ mv:text_field=“ ‚user‘,’name'“
Ergebnis: Das lässt sich auch ohne Rails in jedem Browser darstellen und in einem Editor bearbeiten.

Aber Masterview kann noch mehr.
Rails kennt ja die Möglichkeit, Teile einer Seite in Layouts zu lagern. Das ist extrem praktisch, da man wiederkehrende Elemente nur einmal definieren muss. Dumm nur, dass man in so einem Fall mindestens zwei Dateien hat, nämlich die Layout Datei und die „eigentliche“ Datei. Wenn man jetzt noch Teile seiner Seite mit Ajax dynamisch aktualisieren will, hat man eine dritte Datei (welche mit render :partial eingebunden wird).
Unter Masterview packt man alles in eine einzige HTML-Datei.
Mit den Befehlen mv:generate und mv:gen_partial kann man dort die Generierung der benötigten Dateien anstoßen.

Man kann Masterview problemlos ausprobieren. Da es (auf Wunsch) *.rhtml Dateien erzeugt, ist der Wechsel zurück zur „normalen“ Entwicklung kein Problem.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

What is 9 + 2 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)