Ruby on Rails 3.2

Bereits am 20. Januar hatte David die neue Rails-Version angekündigt. Ursprünglich für Dezember letzen Jahres geplant, ist am Wochenende Rails 3.2 veröffentlicht worden.

Wie in den vorherigen Version, ist bei diesem Release wieder Wert auf Geschwindigkeit gelegt worden. Allerdings diesmal auf die Geschwindigkeit während des Developments. In Rails 3.2 werden nun, wenn im Development Environment gestartet, nur die Klassen erneut geladen. So hat man gerade in großen Projekten eine spürbare Geschwindigkeitsverbesserung. Rails 3.2 ist das letzte Release, welches noch Ruby 1.8.x unterstützt. Beginnend mit Rails 4.0 wird Ruby 1.9.3 erforderlich sein.

Weitere Neuerungen sind:

  • Schnelleres Routing und URL-Generierung dur die neue Journey Engine
  • Explain Queries um einen besseren Einblick in die generierten SQL-Statements zu bekommen und ggf. zu prüfen ob die gesetzten Indexes verwendet werden.
  • Tagged Logger um Einträge/Benutzer in Logfiles filtern zu können
  • Active Record Store für die Verwendung von Key/Value Paaren ohne direkt die zugehörige Datenbank installieren zu müssen

Die gesamten Releasenotes inklusive einer Update-Anleitung ist wie auf folgender Seite verfügbar: http://guides.rubyonrails.org/3_2_release_notes.html

Rails 3.1 veröffentlicht

Wie bereits gestern angekündigt wurde soeben die lang erwartete Rails-Version 3.1 veröffentlicht. Neben den offensichtlichen Neuerungen wie z.B. der Asset-Pipeline, wurde auch wieder die Geschwindigkeit verbessert und Helfer hinzugefügt um die Entwicklung zu vereinfachen.

Dies sind einige der Highlights in diesem Release:

ActionPack

  • ActionPack wurde um die neue Asset Pipeline erweitert Weitere Details: rails guides on the asset pipeline.
  • Streaming wird nun unterstützt. Somit lassen sich generierte Teile sofort zum Client schicken ohne, dass erst die ganze Seite fertig gestellt werden muss.
  • RJS wurde in ein Gem ausgelagert.

ActiveModel

  • attr_accessible akzeptiert nun :as als Option um eine Rolle zu spezifizieren
  • ActiveModel::SecurePassword wurde für sicherere Passwörter hinzugefügt.

ActiveRecord

  • Prepared Statement Caches sind nun in ActiveRecord::Base#create integriert.
  • Associations wurden überarbeitet.
  • default_scope kann nun alle Objekte aufnehmen die die Methode call implementiert haben.
  • Der PostgreSQL Adapter unterstützt nu PostgreSQL in Version 8.2 un neuer.
  • Migrations können nun Rückgängig gemacht werden.
  • Wenn ein Model generiert wird, wird add_index standardmäßig für belongs_to oder references Spalten hinzugefügt.

ActiveResource

  • Das Standardrückgabeformat ist nun JSON.

ActiveSupport

  • ActiveSupport::BufferedLogger setzt nun das Encoding auf BINARY.
  • Mit Object#in?  kann nun getestet werden ob ein Objekt in einem anderen Objekt ist.
  • ActiveSupport::Dependencies::ClassCache hält nun eine Referenz auf erneut ladbare Klassen.
  • weeks_ago und prev_week wurden zu Date/DateTime/Time hinzugefügt.
  • JSON Decoding verwendet nun das multi_json gem which.

Railties

  • UTF-8 wird nun als Standard für DB-Schemas verwendet.
  • Rack::Sendfile Middleware kommt nur zum Einsatz wenn x_sendfile_header gesetzt wurde.
  • Das Alias r für den rails runner ist hinzugekommen.
  • jQuery ist nun die Standard JavaScript Bibliothek.
  • Mit config.force_ssl kann nun eine sichere Verbindung erzwunden werden.

Security Update für Rails 3.0.10 und 2.3.14

Heute sind neue Version für Rails 3 und 2 erschienen. Die neue Version behebt ein paar Sicherheitslücken und Nutzer sollten wenn möglich auf Ihre Applikationen aktualisieren.

Die Liste der Fixes sind in den jeweiligen Changelogs aufgelistet:

Rails 3.0.10: https://github.com/rails/rails/compare/v3.0.9…v3.0.10

Rails 2.3.14: https://github.com/rails/rails/compare/v2.1.12…v2.1.14

 

 

 

 

 

 

 

 

Rails 3.0.9 veröffentlicht

Rails 3.0.9 wurde heute veröffentlicht. Es behebt ein paar Bugs und enthält zudem noch das letzte Sicherheitsfix.

Das Update kann wie gewohnt über gem eingespielt werden:

[bash]
gem install rails
[/bash]

Ansonsten gibt es noch die Möglichkeit über bundler die eigene Railsversion auf den aktuellsten Stand zu bringen.

Gemfile anpassen…

[ruby]
gem ‚rails‘, ‚3.0.9‘
[/ruby]

… und bundler aufrufen

[bash]
bundle install
[/bash]

Rails 3.0.6 Sicherheitsupdate veröffentlicht

Rails ist in der Version 3.0.6 als Sicherheitsupdate erschienen. Das geschlossene Sicherheitsleck betrifft einen möglichen Angriff über XSS. Dabei kann bei der Verwendung von auto_link Fremdcode eingeschleust werden.

Wenn folgendes in der View verwendet wird:

<%= auto_link(params[:content]) %>

Kann unter bestimmten Vorraussetzungen über „content“ unerwünschter JavaScript-Code eingeschleust werden.

Um sich gegen diese Lücke zu schützen, ….

  • … auf Rails 3.0.6 aktualisiert werden
  • … der folgende Patch eingespielt werden: Patch
  • … wenn Update oder das Patchen nicht möglich ist, kann händisch das Problem umgangen werden
    • <%= sanitize(auto_link(params[:content])) %>
    • bei vertrauenswürdigen Quellen
      <%= raw(auto_link(params[:content])) %>

Weitere Details zu dem Release findet ihr unter folgendem Link: –> Link

Rails 3.0.5 veröffentlicht

Gestern Abend wurde Rails 3.0.5 veröffentlicht. Diese Version beinhaltet ein paar kleinere Bugfixes und es wurden weitere Deprecations (Warnung über veraltete Methoden/Funktionen) hinzugefügt.

Bugs Fixes:

  1. gzip gibt nun die Datei binär zurück
  2. Active Record limit Werte
  3. Relation#where erzeugt nun immer ein „AND“-Statement
  4. Observer callbacks werden jetzt nur ein mal aufgerufen

Deprecations:

  1. Relation#& Alias für Relation#merge.
  2. Interpolierte Beziehung

Eine komplette Liste mit allen Ändernungen ist hier verfügbar: https://github.com/rails/rails/compare/v3.0.4…v3.0.5

Neue Rails Releases (Sicherheitsupdate)

Dieses Release schlißt eine Sicherheitslücke, die unter bestimmten Umständen von Angreifern ausgenutzt werden kann, um die CSRF Schutzmaßnahmen zu umgehen. Betroffen von diesem Problem sind die Rails-Versionebn 2.1.0 und neuer. Applikationen die den CSRF Schutz nicht verwenden sind nicht betroffen.

Das Problem wurde in  Rails 3.0.4  und Rails 2.3.11 behoben. Das Update kann über wie gewohnt über RubyGems erfolgen.

Wenn ein Update übr Gems nicht möglich ist, können folgende Patches verwendet werden:

Weitere Details sind hier erhältlich: http://weblog.rubyonrails.org/2011/2/8/csrf-protection-bypass-in-ruby-on-rails?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+RidingRails+%28Riding+Rails%29

RubyGems 1.5.0 erschienen: Jetzt mit Ruby 1.9.2 Unterstützung

RubyGems ist in Version 1.5 erschienen und bringt nun endlich Unterstützung für Ruby 1.9.2 mit. Dieses Release behebt nun die Probleme die es in der vorherigen Version (rubygems 1.4) mit der aktuellen Ruby-Version gab.

Neben Bugfixes bringt diese Version auch einige Neuerungen und Verbesserungen mit.

  • Wie schon erwähnt Unterstützung für Ruby 1.9
  • Post-build hooks die ein „gem install“ abbrechen könnenl
  • Gem.find_files ist jetzt 40% schneller (on Ruby 1.9)
  • Bessere Fehlerausgabe für beschädigte/korrupte Gem Dateien (inklusive Pfad)
  • Neue Hilfe Dokumente zur Unterstützung von Ruby 1.9
  • gem update aktualsiert nicht mehr defaultmäßig und falscher weise RubyGems selber

Die Aktualisierung kann wie gewohnt über gem selber vollzogen werden:

 

[bash]
gem update –system
[/bash]

 

Alternative Installations- und Aktualisierungmöglichkeiten sind in der neuen Dokumentation verfügbar:

https://github.com/rubygems/rubygems/blob/master/UPGRADING.rdoc

 

Benutzer von Bundler sollten mit dem Update noch ein wenig warten, weil die atktuelle Bundler-Version nicht perfekt mit dem neuen RubyGems funktioniert. In der Regel sollte auch hier eine aktualisierte Version relativ schnell erscheinen.

Phusion Passenger 3 veröffentlicht

Phusion Passenger ist seit gestern in der dritten Version verügbar. Die neue Version bringt einige Neuerungen mit, die die Arbeit mit Rails wieder vereinfachen bzw. verbessern.

Dies sind die Verbeserungen/Neuerungen in Passenger 3:

  • Bis zu 55% mehr Geschwindigkeit
  • Die Stabilität wurde weiter verbessert
  • Selfhealing ist ein neues Feature um abgestüzte Hauptprozesse wieder zu beleben
  • Standalone-Version um Passenger während der Entwicklung oder hinter Proxies zu benutzen
  • Limitierungen aus der vorherigen Version wurden entfernt
  • Neue Features wurden hinzugefügt
  • Passenger kann nun mit unterschiedlichen Ruby Versionen betrieben werden

Weitere Details zu dem Release inklusive Details zu den einzelen Erneuerungen gibt es im Phusion-Blog: http://blog.phusion.nl/2010/10/18/phusion-passenger-3-0-0-final-released/

Securtiy Update Für Rails 2.3.9 und 3.0

Für die aktuellen Rails Versionen der Reihe 2.3 und 3.0 wurde heute ein Securtiy-Update veröffentlicht. Die Schwachstelle kann unter bestimmten Umständen von Angreifern ausgenutzt werden, um eigenen Code in die Applikation einzuschleusen.

Die betroffenen Versionen sind 2.3.9 und 3.0.0. Die vorherigen Versionen sind ausgeschlossen.

Es gibt zwei Möglichkeiten bestehende Applikationen zu aktualisieren:

  1. Ein Update über die bekannten Wege via gem:
    [bash]
    gem update rails
    [/bash]
  2. Ein Update durch einen Patch (Falls ein Update über gem nicht Möglich sein sollte)
    Die Patches sind unter folgenden Links Verfügbar:

Mehr Details gibt unter folgendem Link http://weblog.rubyonrails.org/2010/10/15/security-vulnerability-in-nested-attributes-code-in-ruby-on-rails-2-3-9-and-3-0-0?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+RidingRails+%28Riding+Rails%29