Die ersten Rails 2.0 Tutorials

An den Namen der Rails Tutorials auf OReilly hat Fabia Akita die ersten Rails 2.0 Tutorials geschrieben und auf seiner Seite veröffentlicht.

Akitas Tutorials behandeln in den beiden Tutorials die neuen Features und Änderungen die in dieser Version hinzugekommen sind.

Im ersten Teil geht er angefangen von der Installation der Gems über “Sexy Migrations”, den Routes-Anpassungen zu den Views über.

Im zweiten Teil werden der neue Query-Cache, Assets, Ajax Helper, Debugging, Foxy Fixtures und Debugging behandelt. Danach wird das Tutorial mit Deprecations und REST abgerundet.

Teil 1: http://www.akitaonrails.com/2007/12/12/rolling-with-rails-2-0-the-first-full-tutorial

Teil 2: http://www.akitaonrails.com/2007/12/12/rolling-with-rails-2-0-the-first-full-tutorial-part-2

Rails 2.0 released

Nachdem heute morgen bereits das 2.0.0 Tag gesetzt wurde, ist vorhin von David das öffentliche Annoucement gekommen, dass Rails 2.0 zum Download bereit steht.

Das Tag wurde auf 2.0.1 erhöht, weil noch ein paar Änderungen nötig waren.

Den offiziellen Eintrag findet ihr unter: http://weblog.rubyonrails.org/2007/12/7/rails-2-0-it-s-done

Mehr über die Neuerungen und Änderungen erfahrt auch unter:

http://www.rubyonrails.de/newsitems/94
, http://www.rubyonrails.de/newsitems/89
und
http://www.rubyonrails.de/newsitems/95

Final Rails 2.0 Release Tag gesetzt

Das final 2.0 Release Tag wurde heute morgen von David gesetzt. Daher ist die offizielle Ankündigung in sehr naher Zukunft zu erwarten.

Hier nochmal eine Auflistung der Änderungen und Erweiterungen in dieser Version (Danke an Ryan für die Zusammenfassung):

  • ActionMailer::Base.server_settings Deprecated
  • 1.month.from_now.no_longer.effed
  • Source Code Annotations
  • A Better Way to Access Your Helpers
  • Stop Littering In Your Environment File
  • ActiveRecord Caching Provided in Actions
  • Cookie Based Sessions are the New Default
  • Expanded Caching Scope
  • .rhtml and .rxml to Die a Slow and Painful Death
  • Mime::Type Convenience Methods
  • ActiveRecord Explicit Caching
  • RESTful Routes Get a New Custom Delimiter
  • Object Transactions Are Out
  • ActiveResource Gets Custom Methods
  • render Now 70% More Betterer
  • A More Flexible to_xml
  • New Database Rake Tasks
  • validates_numericality_of Gets Pimped
  • ActiveResource Finder Update and Custom Headers
  • RESTful Routing Updates
  • Bringin’ Sexy Back
  • No More (conventional) Pagination
  • Collection Fixtures
  • Use Rake to List Your Routes
  • Partials Get Layouts
  • Your DB Adapter May Have Left the Building
  • Logging Gets a Little Snappier
  • Better Cross-Site Request Forging Prevention
  • Better Exception Handling
  • Specify Plugin Load Ordering
  • Validations Now :allow_blank
  • Fixtures Just Got a Whole Lot Easier
  • Filters get Tweaked
  • Pre-Environment Load Hook

Rails 2.0: Release Candidate 2

Der zweite Release Canditate für Rails 2.0 wurde veröffentlicht.
Dieses Release enthält ein paar Korrekturen und wird, wenn keine schwerwiegenden Fehler gefunden werden, nächste Woche als endgültiges Release veröffentlicht.

Der Release-Canditate ist unter dem Namen rel_2-0-0_RC2 im SVN-Repository erreichbar.

Die Gem-Version findet ihr als Version 1.99.1.

Wer sich für die Änderungen und Neuerungen interessiert findet unter http://www.rubyonrails.de/newsitems/89 die Details dazu.

Rails 2.0 Preview Release

Gestern (30.09.07) hat David das Preview Release zu Rails 2.0 veröffentlicht.

Dies ist die erste Vorabversion, der wahrscheinlich noch ein, zwei und ggf. drei Release Candidates folgen werden.

Bevor die endgültige Version erscheint soll es noch ein 1.2.4’er Version geben. Diese wird einige Bugfixes und aktualisierte Warnung über veraltete/abgelöste Bereiche enthalten. So soll sichergestellt werden, dass jeder seine Applikation auf den aktuellsten Stand bringen kann, bevor sie auf die neue Version umgestellt wird.

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