Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort des Fachgutachters
Einleitung
1 Einführung
2 Installation
3 Erste Schritte
4 Einführung in Ruby
5 Eine einfache Bookmarkverwaltung
6 Test-Driven Development
7 Rails-Projekte erstellen
8 Templatesystem mit ActionView
9 Steuerzentrale mit ActionController
10 Datenbankzugriff mit ActiveRecord
11 E-Mails verwalten mit ActionMailer
12 Nützliche Helfer mit ActiveSupport
13 Ajax on Rails
14 RESTful Rails und Webservices
15 Rails mit Plug-ins erweitern
16 Performancesteigerung
17 Sicherheit
18 Veröffentlichen einer Rails-Applikation auf einem Server
Ihre Meinung?

Spacer
 <<   zurück
Ruby on Rails 2 von Hussein Morsy, Tanja Otto
Das Entwickler-Handbuch
Buch: Ruby on Rails 2

Ruby on Rails 2
geb., mit DVD
699 S., 39,90 Euro
Rheinwerk Computing
ISBN 978-3-89842-779-1
Online bestellenPrint-Version Jetzt Buch bestellen
* versandkostenfrei in (D) und (A)
Pfeil 1 Einführung
  Pfeil 1.1 Wie entstand Rails?
  Pfeil 1.2 Warum Ruby?
  Pfeil 1.3 Model View Controller
  Pfeil 1.4 Datenbankpersistenz
  Pfeil 1.5 Konvention statt Konfiguration
  Pfeil 1.6 Das DRY-Prinzip
  Pfeil 1.7 Das neue Web 2.0
  Pfeil 1.8 Neues in Rails 2.0.x
  Pfeil 1.9 Update auf Rails 2.0.x


Rheinwerk Computing - Zum Seitenanfang

1.9 Update auf Rails 2.0.x  topZur vorigen Überschrift

Bevor Sie Ihre bestehenden Rails-Applikationen auf Rails 2.0.x updaten, sollten Sie auf Rails 1.2.6 updaten. In Rails 1.2.6 werden Warnmeldungen für das meiste, was ab Rails 2.0 nicht mehr unterstützt wird, ausgegeben. So dass Sie, wenn unter Rails 1.2.6 keine Warnmeldungen ausgegeben werden, davon ausgehen können, dass Ihre Applikation mit hoher Wahrscheinlichkeit auch fehlerfrei unter Rails 2.0.x laufen wird.

Um auf Rails 2.0.x upzudaten, führen Sie bitte folgende Befehle aus:

sudo gem update --system
sudo gem install rails

Das RubyGems-Paket rake sollte mindestens in Version 0.7.3 vorliegen (rake --version). Über folgenden Befehl können Sie das Paket updaten:

sudo gem update rake

Hinweis
Der Befehl sudo wird von Windows und einigen Linux/Unix-Plattformen nicht unterstützt und muss daher auf diesen Systemen weggelassen werden.

Anschließend bringen Sie die integrierten JavaScript-Bibliotheken prototype und scriptaculous und die Rails-Skripte wie die Generatoren in Ihrer Rails-Applikation mit dem Befehl

rake rails:update

auf den neuesten Stand.

Mit dem Befehl rails -v ermitteln Sie die aktuell installierte Railsversion. Die Versionsnummer tragen Sie in der Datei config/environment.rb ein:

...
RAILS_GEM_VERSION = '2.0.2' unless defined? RAILS_GEM_VERSION
...

Listing  config/environment.rb

Nachdem Sie die Version Rails 2.0.x installiert und Ihre Applikation auf den neuesten Stand gebracht haben, müssen Sie Schritt für Schritt jedes noch auftretende Problem beheben.

Wir können Ihnen hier eine Auswahl der häufigsten Probleme, auf die Sie stoßen könnten, geben. Diese Liste erhebt keinen Anspruch auf Vollständigkeit, da es bei jeder Applikation zu anderen Problemen kommen kann.

Resourcen-Controller werden nur noch im Plural angegeben

Kann für vorhandene Singular-Resourcen mit der Option :controller überschrieben werden:

map.resource :example, :controller => 'example'

Keine Instanzvariablen mehr für params, sessions, flash und andere

Auf Parameter aus Formularen, Session-Variablen, Flash-Meldungen und andere Variablen wurde vor Rails 2.0 als Instanzvariablen zugegriffen:

@params[:bookmark]
@session[:admin]
@flash[:notice] = "Fehler bei der Anmeldung!"
@request.bookmarks.first
@env['PATH_INFO']

Ab Rails 2.0 erfolgt der Zugriff ohne das führende @-Zeichen:

params[:bookmark]
session[:admin]
flash[:notice] = "Fehler bei der Anmeldung!"
request.bookmarks.first
env['PATH_INFO']

render_partial

Um ein Partial aus einem Controller oder einem Template heraus einzubinden, wird ab Rails 2.0 die Methode render_partial nicht mehr unterstützt. Stattdessen erfolgt der Aufruf mit render :partial => "Name des Partials"

Der Aufruf

render :partial => @employee

ersetzt den Aufruf von

render :partial => "employee", :object => @employee

Und der Aufruf

render :partial => @employees

ersetzt den Aufruf von

render :partial => "employee", :collection => @employees

render_without_layout

Die Helper-Methode render_without_layout wird nicht mehr unterstützt. Nutzen Sie stattdessen:

render :layout => false

paginate

Um das Ergebnis einer Abfrage auf mehreren Seiten auszugeben, stand bis Rails 2.0 der Helper paginate zur Verfügung. Ab Rails 2.0 wird diese Methode nicht mehr unterstützt. Nutzen Sie stattdessen das Plug-in will_paginate.

start_form_tag und end_form_tag

Die beiden Helper start_form_tag und end_form_tag werden nicht mehr unterstützt. Sie können sie durch form_tag und </form> ersetzen:

<% form_tag examples_path %>
  <%= text_field :example, :title %>
  <%= submit_tag "Speichern" %>
</form>

Oder Sie können der Methode form_tag einen Block übergeben:

<% form_tag examples_path do %>
  <%= text_field :example, :title %>
  <%= submit_tag "Speichern" %>
<% end %>

Das Formular wird automatisch auf das Ende des Blocks geschlossen.

Neue Option :method in link_to

Die Option :post in der link_to -Methode wird durch die neue Option :method ersetzt:

link_to "löschen", employee_url(:id => employee),
:method => :delete

Components

Components war ein Konzept, um während der Ausführung einer Action im Controller eine andere Action mit dem Ergebnis aus der Action, die gerade ausgeführt wird, aufzurufen. Da es zu langsam war, wird Components von Rails 2.0.x nicht mehr unterstützt.

Sollten Sie Components in einer Ihrer Applikationen genutzt haben, versuchen Sie, mit Hilfe von Partials und Filter zu refaktorisieren oder mit Hilfe des Plugins embedded_actions ( http://railsbuch.de/urls/3 ) die Funktionalität wiederherzustellen.

ActiveRecord: acts_as_*

Um den Kern ab Rails 2.0 schlank zu halten, stehen die ActiveRecord -Methoden acts_as_list, acts_as_nested_set und acts_as_tree nicht mehr in der Standardinstallation von Rails zur Verfügung, sondern sie müssen als Plug-ins installiert werden. Danach können sie wie gewohnt verwendet werden.

ruby script/plugin install \
http://svn.rubyonrails.org/rails/plugins/acts_as_list/
ruby script/plugin install \ http://svn.rubyonrails.org/rails/plugins/acts_as_nested_set/
ruby script/plugin install \ http://svn.rubyonrails.org/rails/plugins/acts_as_tree/

ActiveReocord find_all und find_first

Die beiden ActiveRecord -Methoden find_all und find_first werden ab Rails 2.0 nicht mehr unterstützt. Nutzen Sie stattdessen:

Model.find(:all)
Model.find(:first)

ActiveRecord: with_scope

ActiveRecord::Base.with_scope kann ab Rails 2.0 nur noch innerhalb von Models eingesetzt werden. Wenn es nicht zu vermeiden ist, kann es mit Hilfe von Model.send(:with_scope) auch noch außerhalb von Models aufgerufen werden.

Optional: Benennen Sie Ihre Templates um

Ab Rails 2.0 werden die Template-Dateien nicht mehr mit der Dateiendung *.rhtml, sondern mit *.html.erb benannt. Da die Dateiendung *.rhtml trotzdem weiterhin unterstützt wird, müssen Sie Ihre Template-Dateien nicht umbenennen, aber mit nachfolgendem rake-Task ist es ganz einfach, falls Sie sich doch dafür entscheiden sollten:

namespace 'views' do
  desc 'Renames all .rhtml views to .html.erb, .rjs to,
  .js.rjs, .rxml to .xml.builder, and .haml to .html.haml'
  task 'rename' do
    Dir.glob('app/views/**/[^_]*.rhtml').each do |file|
      puts `svn mv #{file} #{file.gsub(/rhtml$/, '.html.erb')}`
    end

    Dir.glob('app/views/**/[^_]*.rxml').each do |file|
      puts `svn mv #{file} #{file.gsub(/rxml$/,
            '.xml.builder')}`
    end

    Dir.glob('app/views/**/[^_]*.rjs').each do |file|
      puts `svn mv #{file} #{file.gsub(/rjs$/, '.js.rjs')}`
    end

    Dir.glob('app/views/**/[^_]*.haml').each do |file|
      puts `svn mv #{file} #{file.gsub(/haml$/, '.html.haml')}`
    end
  end
end

Listing  lib/tasks/rails.rake

Aufrufen können Sie den Task mit rake rename.

Mit dieser Liste haben wir Ihnen eine Reihe von Lösungen zu möglichen Problemen, die nach dem Update auf Rails 2.0.x auftreten können, aufgezeigt. Wie bereits erwähnt, kann es von Fall zu Fall zu weiteren Problemen kommen.



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

 <<   zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Ruby on Rails 2
Ruby on Rails 2
Jetzt Buch bestellen
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: Ruby on Rails 3.1






 Ruby on Rails 3.1


Zum Rheinwerk-Shop: Responsive Webdesign






 Responsive Webdesign


Zum Rheinwerk-Shop: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


Zum Rheinwerk-Shop: JavaScript






 JavaScript


Zum Rheinwerk-Shop: Schrödinger lernt HTML5, CSS3 und JavaScript






 Schrödinger lernt
 HTML5, CSS3
 und JavaScript


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern