· 4 min read
Rails 2.0 Preview Release
Neuerungen in Version 2.0 werden sein:
Action Pack: Resources
Mit dem ActionPack Resources rückt man dem RESTful lifestyle ein wenig näher. Eines der auffälligeren Veränderungen sind die geänderten URLs. Das Semikolon wurde wurde gegen ein Slash ausgetauscht.
Also aus ”/people/1;edit” wird nun ”/people/1/edit”.
Weiterhin kann man nun Namespaces verwenden. Somit wird es einfacher z.B. Admin-Interfaces abzubilden.
Ansonsten wurde eine Konvention fĂĽr das Routing eingefĂĽhrt. Per Default werden nun Resourcen im Plural angegeben.
Action Pack: Multiview:
Neben dem bereits bekannten respond_to können nun Rückgabe-Formate und der Renderer im Template-Namen angegeben werden: .. Beispiele:
show.erb: ist das show-Template fĂĽr alle Formate
index.atom.builder: Hier wird das Builderformat benutzt. In der 1.x.x-Version wurde hier die Endung .rxml benutzt. Der Mimetype ist in diesem Fall “application/atom+xml”
edit.iphone.haml: Hier wĂĽrde die HAML Template Engine benutzt werden (Diese mĂĽsste vorher installiert werden), und es wird das angepasste Mime::IPHONE-Format zurĂĽckgegeben.
Action Pack: Record identification:
Weitere Konventionen sollen nun die Addressierung von Resourcen vereinfachen z.B:
redirect_to(person)
link_to(person.name, person)
form_for(person)
Action Pack: HTTP Loving:
Mit der 2.0 Version rückt Rails zum HTTP-Protokoll ein bisschen näher. So wird man ganz einfach HTTP Basic Authentications durchführen können.
Weiterhin kann nun Javascript- und CSS-Dateien cachen können. z.B. würden mit javascript_include_tag(:all, :cache => true) würde alle eingebundene Dateien zu einer “public/javascripts/all.js” zusammengefasst werden. auf diese Weise kann man weiterhin bei der Entwicklung separate Dateien benutzen und hat trotzdem in Produktion den Vorteil, dass der Browser nur eine Datei anzufordern braucht.
Action Pack: Security:
Rails 2.0 beinhaltet einige Vorkehrungen um mit CRSF und XSS Attacken zu unterbinden.
Action Pack: Exception Handling:
Die Fehlerbehandlung ist nun um die Möglichkeit klassen basierte Behandlungen zu erstellen erweitert worden.
Action Pack: Miscellaneous:
Eine weitere Erweiterung ist der neue AtomFeedHelper um auf einfache Weise seine eigenen Feeds zu erstellen
Active Record: Performance:
Ein Query-Cache der bereits abgesetzte Abfragen für spätere Anfragen speichert, soll die Verarbeitung von Requests beschleunigen.
Active Record: Sexy Migrations:
Tabellen-Spalten vom gleichen Typ können nun in den Migrationsscripten zusammengefasst werden. Dadurch sollen die Scripte mehr DRY werden.
Active Record: Shedding some weight:
Um Active Record ein bisschen schlanker zu machen wurden Teile wie acts_as_XYZ in Plugins ausgelagert. Wenn diese Funktionen benutzt wurden/werden kann man sie einfach mit ./script/plugin install acts_as_XYZ nachinstallieren.
Weiterhin beinhaltet die Standardinstallation nur die DB-Adapter für die freuen Datenbanken MySQL, SQLite und PostgreSQL. Die Adapter für die kommerziellen Datenbanken sind in gem-Pakete ausgelagert worden und können nach der Installation weiterhin benutzt werden.
Active Record: with_scope with a dash of syntactic vinegar:
Um unbeabsichtigten Missbrauch (Verwendung außerhalb von Models) von :with_scope vorzubeugen wurde diese Funktion so umgestellt, dass sie nur noch innerhalb von Models aufgerufen werden kann. Wenn man es weiterhin außerhalb aufrufen möchte oder muss, kann man die send(:with_scope) des Obejkt benutzen.
ActionWebService out, ActiveResource in:
Wie schon seit längerer Zeit abzusehen hat man sich gegen klassische Webservices über SOAP entschieden und stattdessen sich für den REST-Ansatz entschieden. Somit gehört ActionWebService nicht mehr zum Standard-Paket. Es kann aber weiterhin als separates gem installiert und benutzt werden.
ActiveSupport:
Außer Array#rand um einen beliebigen Wert aus dem Array zu holen und Hash#expect um die Schlüssel zu filtern, bestehen die Änderungen hauptsächlich aus Bugfixes.
Action Mailer:
Neben Bugfixes sind alternative Templates die hauptsächlichen Änderungen in diesem Bereich.
Rails: The debugger is back:
Man kann nun den Debugger wieder benutzen.
Rails: Clean up your environment:
Es soll geordneter in Rails 2.0 zugehen. So wird es möglich sein umgebungsspezifische Parameter und Initialisierugen besser zu verwalten. Neue Rails 2.0 werden mit zwei Beispielen ausgeliefert an denen man sich orientieren kann.
Rails: Easier plugin order:
Da ein Teil der Funktionen in Plugins ausgelagert wurde , wird man in Rails 2.0 die Ladereihenfolge selber bestimmen können. So wird gewährleistet, dass eventuelle Abhängigkeiten eingehalten werden können.
Update auf Rails 2.0:
Wer seine Applikation auf Rails 2.0 updaten möchte, sollte erst sicherstellen, dass er bereits die Version 1.2.3 benutzt.
Wenn das Logfile dann keine Warnungen über “deprecated” Funktionen enthält sollte sichergestellt werden, dass Bereiche die dann nur noch als Plugin verfügbar sind installiert werden (Kommerzielle DB-Adapter, pagination….)
Danach kann mit folgendem Aufruf seine Rails-Umgebung auf das Preview Release updaten:
gem install rails—source http://gems.rubyonrails.org
Den gesamten Original-Thread von David findet ihr unter http://weblog.rubyonrails.com/2007/9/30/rails-2-0-0-preview-release