Empfohlene Programmierpraktiken

Link-Verwaltung des CMS in Projekten mit Rails Connector nutzen

Infopark CMS Fiona hat eine interne Link-Verwaltung, die vor allem sicherstellt, dass beim Verschieben oder Umbenennen von CMS-Dateien die Referenzen automatisch aktualisiert werden. Der Rails Connector verfügt jedoch nicht über die geänderten Pfad-Informationen. Aus diesem Grund sollten Aufrufe wie Obj.find(1234) oder Obj.find_by_path("/company/news/") in einer Rails-Anwendung unbedingt vermieden werden.

Um dennoch direkt auf bestimmte CMS-Dateien zugreifen zu können, stellt der Rails Connector mit benannten Links eine geeignete Möglichkeit zur Verfügung: Erstellen Sie im CMS eine Datei mit der Vorlage NamedLink und dem Linklistenfeld related_links. Über diese Linkliste können Sie nun im CMS Ihre Referenzen pflegen, die dann auch von der Link-Verwaltung erfasst werden. In der Rails-Anwendung können Sie nun auf die referenzierten Dateien über den jeweils in der Linkliste vergebenen Titel zugreifen (Beispiel: NamedLink.get_object("news")). Darüber hinaus werden die benannten Links im Cache gehalten, wodurch beim Zugriff darauf Ressourcen geschont werden.

Typische Anwendungsfälle für benannte Links sind beispielsweise:

  • Auf der Homepage die im News-Ordner enthaltenen Dateien anzeigen:
    NamedLink.get_object("news").each do ...
  • Für eine bestimmte Seite eine bestimmte Aktion ausführen:
    if @obj == NamedLink.get_object("homepage") ...
  • Von einer bestimmten Datei ein Feld ermitteln:
    NamedLink.get_object("important_notes").body

Weitere Informationen hierzu finden Sie in der API-Dokumentation zur Klasse NamedLink.

Bitte beachten Sie folgende Hinweise bei der Nutzung benannter Links:

Im CMS sollte nur eine Datei mit der Vorlage NamedLink existieren, da nur die erste NamedLink-Datei berücksichtigt wird; alle anderen werden ignoriert. Um zu verhindern, dass ein Redakteur weitere Dateien mit der Vorlage NamedLink anlegt, sollte die Vorlage deaktiviert werden, nachdem die Datei angelegt wurde.

Darüber hinaus dürfen die CMS-Dateien, auf die die benannten Links zeigen, weder deaktiviert noch zurückgezogen werden. Versucht die Rails-Applikation, mittels NamedLink auf zurückgezogene oder deaktivierte Dateien zuzugreifen, wird eine Exception ausgelöst. Wird diese Exception nicht explizit abgefangen, funktionieren die Webseiten nicht mehr, die diesen benannten Link enthalten. Abhängig davon, wo benannte Links auf nicht vorhandene Ziele verwendet werden, kann die gesamte Website ausfallen.

Rails-Projekt an lokale Entwicklungsumgebung anpassen

Das Rails-Projekt kann in den Dateien config/environment.rb, config/environments/*.rb und config/initializers/rails_connector.rb konfiguriert werden.

Die dort angegebene Konfiguration wird ab Version 6.7.3 durch Ruby-Dateien in config/local/ überschrieben. Dadurch kann das Rails-Projekt an die lokale Entwicklungsumgebung anpasst werden, ohne dass die Projekt-Konfiguration geändert werden muss.

In diesen Dateien kann sowohl die Konfiguration von Rails als auch die des Rails Connectors lokal angepasst werden. Beispiel:

config.action_mailer.delivery_method = :my_local_delivery_method
RailsConnector::Configuration.instance_name = "my_local_instance_name"

Die Installation des Rails Connectors hinterlässt eine leere Datei config/local/configuration.rb, d.h. es werden keine Änderungen an der Projekt-Konfiguration vorgenommen.

Wenn für die Entwicklung einer Rails-Anwendung ein Versionierungssystem verwendet wird, sollte es so konfiguriert sein, dass es die Dateien im Verzeichnis config/local ignoriert.