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.
- 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.
Datenbanken, Loading und Delegated Types
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.
Active Storage und Deprecations
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)