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 5 Eine einfache Bookmarkverwaltung
  Pfeil 5.1 Rails-Projekt erstellen
  Pfeil 5.2 Weitere Views anlegen
  Pfeil 5.3 Layout
  Pfeil 5.4 Model
  Pfeil 5.5 CRUD - Create - Read - Update - Delete
  Pfeil 5.6 Fehlerbehandlung in Formularen
  Pfeil 5.7 Flash-Messages
  Pfeil 5.8 Refaktorisierung mit Helper und Partials
  Pfeil 5.9 Authentifizierung
  Pfeil 5.10 Routing
  Pfeil 5.11 RESTful Rails
  Pfeil 5.12 Darstellungsformate in RESTful Rails
  Pfeil 5.13 Ajax


Rheinwerk Computing - Zum Seitenanfang

5.12 Darstellungsformate in RESTful Rails  topZur vorigen Überschrift

Format frei wählbar

Ein weiterer interessanter Aspekt von RESTful Rails ist die Darstellung. Wenn wir die Detailseite eines Bookmarks aufrufen (/bookmarks/2), wird der zweite Bookmark im Browser im HTML-Format angezeigt. Wir könnten auch /bookmarks/2.html im Browser aufrufen. Das funktioniert und ist erlaubt, weil die Darstellung in RESTful Rails frei wählbar sein sollte.

respond_to

Das heißt, wir könnten auch /bookmarks/2.xml oder /bookmarks/2.pdf aufrufen. Wenn wir das testen, kommt es zwar zu keinem Fehler, aber die Ausgabe erfolgt nicht in dem von uns gewünschten Format, sondern es bleibt bei der Darstellung im HTML-Format. Das liegt daran, dass wir nichts vorgesehen haben in unserem Controller. Rails bietet uns eine sehr einfache Methode an, respond_to, die wir im Controller einsetzen können, um die Darstellung in unterschiedlichen Formaten zu realisieren.

Testen wollen wir das mit der Action show im Bookmarks-Controller, indem wir die Methode respond_to einfügen, innerhalb der wir die Ausgabe im HTML- und im XML-Format definieren:

Listing  app/controllers/bookmarks_controller.rb

def show
  @bookmark = Bookmark.find(params[:id])
  respond_to do |format|
    format.html
    format.xml {render :xml => @bookmark.to_xml}
  end
end

to_xml

Da das HTML-Format der Standardausgabe entspricht und es auch Standard ist, dass der entsprechende View zur Action im Controller geladen wird, müssen wir für den Fall, dass die Ausgabe im HTML erfolgen soll, nichts angeben. Im Fall der Ausgabe im XML-Format stellt uns ActiveRecord eine interessante Methode zur Verfügung, to_xml, mit der wir jedes ActiveRecord-Objekt in XML umwandeln können. Über render :xml erfolgt die Ausgabe im XML-Format.

Jetzt erhalten wir beim Aufruf von /bookmarks/2 und /bookmarks/2.html die Ausgabe des zweiten Bookmarks im HTML-Format, und beim Aufruf von /bookmarks/2.xml erfolgt die Darstellung im XML-Format:

Listing  http://localhost:3000/bookmarks/2.xml

<?xml version="1.0" encoding="UTF-8"?>
<bookmark>
  <comment></comment>
  <created-at type="datetime" >2007-05-16T16:30:59+02:00
  </created-at>
  <id type="integer" >2</id>
  <title>Ruby Homepage</title>
  <updated-at type="datetime" >2007-05-16T16:30:59+02:00
  </updated-at>
  <url>http://www.ruby-lang.org</url>
</bookmark>

Ausgabe einschränken

Wenn wir nur bestimmte Felder ausgeben möchten, können wir die Ausgabe einschränken:

Listing  app/controllers/bookmarks_controller.rb

def show
  @bookmark = Bookmark.find(params[:id])
  respond_to do |format|
    format.html
    format.xml {render :xml => @bookmark.to_xml(
	       :only => [:title, :url])}
  end
end

Listing  http://localhost:3000/bookmarks/2.xml

<?xml version="1.0" encoding="UTF-8"?>
<bookmark>
  <title>Ruby</title>
  <url>http://www.ruby-lang.org</url>
</bookmark>

Für die Ausgabe im PDF-Format ist das nicht ganz so einfach, da im PDF-Format nicht standardisiert ist, wie die Ausgabe aussieht.

Die Methode respond_to können wir auch den anderen Actions hinzufügen, um auch deren Ergebnisse im XML-Format darstellen zu können. Diese doch recht einfache Möglichkeit der Darstellung im XML-Format ist sehr hilfreich zum Datenaustausch mit anderen Applikationen.



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