Webframework: Rails in Version 6.1 erschienen

Version 6.1 des Webframeworks für Ruby-Entwickler führt horizontales Sharding sowie Strict Loading ein und umfasst Verbesserungen beim Wechsel der Datenbanken.

In Pocket speichern vorlesen Druckansicht
Gleisanlagen in Maschen im Gegenlicht

Gleisanlagen in Maschen

(Bild: MediaPortal der Deutschen Bahn)

Lesezeit: 2 Min.
Von
  • Alexander Neumann

Mit Rails 6.1 liegt nun ein neues Release des für Ruby-Entwickler wichtigsten Webframeworks vor. Es ist der Nachfolger von Rails 6.0, das im August 2019 nach ungefähr zweieinhalb Jahren Entwicklung erschienen war. Die Neuerungen konzentrieren sich offenbar auf Features, die Entwickler benötigen, damit sie ihre Anwendung über Jahre hinweg am Laufen halten können.

Beispielsweise lassen sich nun Verbindungen pro Datenbank umschalten. Wer in Version 6.1 den Handler legacy_connection_handling in der Konfiguration auf false setzt, der kann damit nun die Verbindungen für eine einzelne Datenbank wechseln. Das geschieht dann über den Aufruf von connected_to auf der entsprechenden abstrakten Klasse. Rails war außerdem bisher nicht in der Lage, horizontales Shading zu unterstützen, weil Modelle in der Active-Record-Implementierung nur eine Verbindung pro Rolle pro Klasse haben konnten. Horizontales Sharding ist nun mit Rails 6.1 möglich.

Neu ist auch der strict_loading-Modus, mit dem sich optional Lazy Loading vermeiden lässt. Mit der Funktion können Entwickler sicherstellen, dass ein Eager Loading für ihre Associations funktioniert und N+1-Ausfallwahrscheinlichkeiten gering bleiben. Hinzugekommen sind die Unterstützung für Association-Deklarationen und die Möglichkeit, ein Strict Loading standardmäßig zu aktivieren.

Rails 6.1 fügt sogenannte Delegated Types als Alternative zur Single-Table-Vererbung hinzu. Das ist hilfreich beim Darstellen von Klassenhierarchien, wobei die Oberklasse eine konkrete Klasse sein kann, die durch ihre eigene Tabelle repräsentiert wird. Jede Unterklasse hat damit ihre eigene Tabelle für zusätzliche Attribute.

Das Active-Storage-Feature hat ebenfalls ein Update erfahren. Es lassen sich jetzt Anhänge für den Service konfigurieren, in dem man sie speichern möchte. Zusätzlich bietet Rails 6.1 hier Unterstützung für permanente URLs für Blobs.

Wer eine Anwendung ohne Deprecation-Warnung betreiben möchte, für den ist das ActiveSupport::Deprecation.disallowed_warnings=-Feature wertvoll. Mit der Funktion können Anwendungen optional einen Fehler auslösen, wenn eine Deprecation-Warnung ausgegeben wird. Als veraltet gilt nun der classic-Autoloader. Neuen Rails-Projekten wird davon abgeraten, ihn zu verwenden. Empfohlen wird außerdem für Projekte, die den classic-Autoloader nutzen, beim Upgrade den mit Rails 6.0 eingeführten Zeitwerk-Code-Loader zu nutzen.

Weitere größere Neuerungen stellt die Blog-Ankündigung vor. Noch detaillierter geht es in den Changelogs zu.

(ane)