CMS-Inhalte mit ERB-Templates ausliefern

Der CMS-Controller des Rails Connectors liefert Inhalte von Dokumenten und Ordnern mit Hilfe eines Views aus. Durch das Routing wird dabei genau eine Datei als aktueller Kontext ausgewählt. Im View kann diese Datei – als Instanz der Klasse Obj – unter dem Namen @obj referenziert werden.

Bei ERB-Templates werden die dynamischen Inhalte durch Ruby-Anweisungen im HTML-Text des Views eingefügt. Um beispielsweise den Namen der aktuellen Datei auszugeben, schreiben Sie:

<%= @obj.name %>

Auf Felder der Version kann auch direkt zugegriffen werden. Es gibt zwei Varianten, mit denen beispielsweise auf den Titel der freigegebenen Version der Datei zugegriffen werden kann (wenn keine freigegebene Version existiert, tritt bei beiden Varianten ein Fehler auf):

<%= @obj.title %>
<%= @obj[:title] %>

Die Variante @obj.title wird empfohlen, wenn Sie im Falle eines fehlenden Feldes eine Fehlermeldung erzeugen möchten. Soll dagegen ein fehlendes Feld ignoriert werden, verwenden Sie die Schreibweise @obj[:title].

Damit die Werte korrekt dargestellt werden, ist es notwendig, den Helper display_field zu verwenden (bis 6.6.1 wird anstelle der Helper display_field und display_value der Helper display verwendet). Er wird folgendermaßen eingebunden:

<%= display_field @obj, :title %>

Durch diese Schreibweise wird automatisch auch ein Bearbeitungselement in die Vorschau integriert. Bearbeitungselemente können auf mehrere Arten unterdrückt werden. Verwenden Sie eine der folgenden Schreibweisen (bis 6.6.1 wird anstelle der Helper display_field und display_value der Helper display verwendet):

<%= display_value @obj.title %>
<%= display_field @obj, :title, :marker => false %>

Komplexere Funktionen wie die Erzeugung einer Navigation werden aus Gründen der Übersichtlichkeit, der Wiederverwendbarkeit und der Qualitätssicherung nicht direkt in die Views aufgenommen. Hierfür werden so genannte Helpers verwendet.

Für HTML-Fragmente, die wiederverwendet werden sollen, stellt das Rails-Framework die Möglichkeit bereit, sie als sogenannte Partials auszulagern.