Eine Rails-3.2-Anwendung auf den Rails Connector 6.8.0 umstellen

Wenn Sie eine Rails-Anwendung mit einem Rails Connector vor Version 6.8.0 betreiben, so gehen Sie bitte nach dieser Anleitung vor, um Ihre Anwendung auf den Rails Connector 6.8.0 umzustellen. Die Rails-Anwendung als solche muss bereits auf Rails 3.2 aktualisiert worden sein, bevor der Rails Connector auf Version 6.8.0 aktualisiert wird.

Der Rails Connector enthält auch in Version 6.8.0 einen Generator, der die benötigten Dateien in einer Rails-Anwendung installiert. Dieser Generator ist zwar darauf optimiert, den Rails Connector in eine leere Rails-Anwendung zu installieren, er kann jedoch auch verwendet werden, um eine bestehende Anwendung zu aktualisieren. Der Generator überschreibt bestehende Dateien erst, nachdem eine entsprechende Rückfrage bestätigt wurde.

Aktualisieren Sie den Rails Connectors auf Version 6.8.0 in den folgenden Schritten:

  1. Der Rails Connector besteht ab Version 6.8.0 aus zwei Gems. Zusätzlich zum Gem infopark_rails_connector ist das Gem infopark_fiona_connector erforderlich. Installieren Sie zunächst beide Gems mit gem install.

  2. Installieren Sie jetzt den Rails Connector in Ihre Anwendung:

    rails generate rails_connector:install

    Der Generator überschreibt bestehende Dateien erst nach Bestätigung. Prüfen Sie die Änderungen, die der Generator vornehmen möchte, indem Sie seine Rückfrage mit ‘d’ beantworten.

    Die folgenden Dateien enthalten potenziell applikationsspezifische Änderungen und sollten nicht ohne Weiteres überschrieben werden:

    • config/initializers/rails_connector.rb
    • lib/obj_extensions.rb
    • app/views/layouts/application.html.erb
  3. Anpassungen zur Nutzung der Asset Pipeline von Rails 3.2

    Bereits in Rails 3.1 wurde die Asset Pipeline als Framework für die effiziente Auslieferung von CSS-, JavaScript- und Bilddateien (Assets) eingeführt. Der Rails Connector liefert seine CSS- und JavaScript-Dateien bereits darüber aus.

    Ab Version 6.8.0 des Rails Connectors für CMS Fiona werden keine Assets mehr vom Generator in die Anwendung kopiert, sondern direkt vom Gem ausgeliefert. Dies bedeutet insbesondere, dass in bestehenden Anwendungen alle bisher generierten Assets ignoriert werden und daher entfernt werden können. Dies betrifft im Einzelnen:

    • public/javascripts/rails_connector/*
    • public/stylesheets/rails_connector/*
    • public/images/rails_connector/*
    • public/javascripts/rails.js
    • public/javascripts/jrails.js
    • public/javascripts/jquery.js

    Um auch die übrigen Assets durch die Pipeline ausliefern zu lassen, sollten die Unterordner javascripts, stylesheets und images aus dem Ordner public in den Ordner app/assets verschoben werden. Danach müssen die betreffenden Pfade in der Anwendung und in CSS- sowie JavaScript-Dateien angepasst werden.

    Beachten Sie bitte, dass Assets unter einem einheitlichen URL-Pfad (voreingestellt /assets) ausgeliefert werden; die URL enthält weder stylesheets noch javascripts noch images.

    Wegen der Verwendung eines Pfad-Präfixes in der Rails-Vorschau im GUI sollte in CSS- und JavaScript-Dateien von absoluten URLs wie /assets/icon.png Abstand genommen werden, da solche Assets bei einem Pfad-Präfix wie /default nicht gefunden werden. Stattdessen sollten relative URLs verwendet werden.

  4. Frieren Sie die Version des Gems jQuery ein Die JavaScript-Bibliothek jQuery wird durch das Gem jquery-rails und die Asset Pipeline zur Verfügung gestellt. Demzufolge ist die verwendete jQuery-Version jetzt an dieses Gem geknüpft. Frieren Sie daher die Version des Gems im Gemfile ein, um den Zeitpunkt der Aktualisierung von jQuery selbst festlegen zu können. Im Gemfile von Playland ist die von uns getestete Version eingefroren.

  5. Entfernen Sie die folgenden Dateien, sofern vorhanden:

    • lib/tasks/rails_connector_addons.rake
    • lib/tasks/rspec.rake

Lokalisierungsdateien

Seit Version 6.7.3 sind im Lieferumfang des Rails Connectors keine Lokalisierungsdateien von Ruby on Rails mehr enthalten. Für den Betrieb einer Rails-Connector-Applikation in einer anderen Sprache als Englisch werden Lokalisierungsdateien benötigt.

Benutzerattribute in der Session

Seit Version 6.7.3 werden die Attribute eines angemeldeten Benutzers, die in der Session zwischengespeichert werden, nicht mehr im UserController festgelegt. Die Attribute werden jetzt in der Datei config/initializers/rails_connector.rb und auf folgende Weise definiert:

RailsConnector::Configuration.store_user_attrs_in_session = [:login, :first_name, :last_name, :email, :id]

Die ID der betreffenden Person (contact_id) wird immer in der Session gespeichert, auch dann, wenn sie in dieser Liste nicht aufgeführt ist.