Der Rails Connector enthält Komponenten, die bereits im Auslieferungszustand in Ihrer Rails-Anwendung lauffähig sind. Darüber hinaus ist die Software mit vielfältigen Schnittstellen ausgestattet, über die Sie die Komponenten an Ihre Anforderungen anpassen können.
Die folgenden Arten von Bestandteilen sind prinzipiell erweiter- und austauschbar:
- Controller (z. B.
CmsController,SearchController) - Helper (z. B.
CmsHelper,SearchHelper) - Views (z. B. für die Darstellung von Suchergebnissen)
- Das Modell
Obj
Controller
Die Controller-Klassen des Rails Connectors sind über einen Vererbungsmechanismus erweiterbar. Beispielsweise ist die Klasse CmsController von der Klasse RailsConnector::DefaultCmsController abgeleitet und erbt dadurch das gesamte dort definierte Verhalten. Die mitgelieferte Klasse CmsController fügt selbst keine Funktionalität zur Anwendung hinzu, sondern ist als Platzhalter für eigene Erweiterungen der Standard-Implementierung gedacht.
Um das Verhalten des CMS-Controllers anzupassen, legen Sie in Ihrem Applikationsverzeichnis unter app/controllers/ die Datei cms_controller.rb mit folgendem Inhalt an:
class CmsController < RailsConnector::DefaultCmsController # Ihre Anpassungen end
Helper
Die Helper-Module des Rails Connectors sind hierarchisch genauso aufgebaut wie die Controller-Klassen: es gibt beispielsweise ein Modul DefaultCmsHelper, das die eigentliche Implementierung enthält, sowie ein Modul CmsHelper, das diese Funktionalität nutzt, jedoch selbst nichts hinzufügt. Um – für dieses Beispiel – Helper-Methoden hinzuzufügen oder vorhandene auszutauschen, legen Sie in Ihrem Applikationsverzeichnis unter app/helpers/ eine Datei cms_helper.rb mit folgendem Inhalt an:
module CmsHelper include RailsConnector::DefaultCmsHelper # Ihre Anpassungen end
Views
Die mitgelieferten Views des Rails Connectors können Sie durch eigene ersetzen; siehe den Abschnitt Mitgelieferte Views des Rails Connectors anpassen.
Das Modell Obj
Bis Version 6.8.1 sucht der Rails Connector bei der Initialisierung innerhalb Ihrer Applikation nach einem Modul namens ObjExtensions und ruft, falls es existiert, dessen Methode enable auf. Um diesen Mechanismus zu nutzen, legen Sie unter dem Ordner lib die Datei obj_extensions.rb in Ihrer Applikation an. Damit können Sie das Modell Obj erweitern. Geben Sie der Datei als Ausgangsbasis den folgenden Inhalt:
module ObjExtensions
def self.enable
Obj.class_eval do
# Definieren Sie hier Ihre Methoden
end
end
end
Ab Version 6.8.2 kann das Modell Obj in der Applikation angelegt und erweitert werden. Das Modell muss von RailsConnector::BasicObj abgeleitet sein.
# app/models/obj.rb class Obj < RailsConnector::BasicObj # Definieren Sie hier Ihre Methoden end