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 bestellen
* versandkostenfrei in (D) und (A)
Pfeil 9 Steuerzentrale mit ActionController
  Pfeil 9.1 Grundlagen
  Pfeil 9.2 Aufgaben des Controllers
  Pfeil 9.3 Filter
  Pfeil 9.4 Routing


Rheinwerk Computing - Zum Seitenanfang

9.3 Filter  Zur nächsten ÜberschriftZur vorigen Überschrift

kap_actioncontroller_filter

Wenn man vor jeder Action oder nach jeder Action eine Reihe von Befehlen ausführen möchte, bietet es sich an, sogenannte Filter zu verwenden.

Es gibt drei verschiedene Filter:

  • before_filter:
    Werden vor Ausführung der Actions ausgeführt.
  • after_filter:
    Werden nach Ausführung der Actions ausgeführt.
  • around_filter:
    Werden vor und nach Ausführung der Actions ausgeführt.

Rheinwerk Computing - Zum Seitenanfang

Filtertypen  Zur nächsten ÜberschriftZur vorigen Überschrift

before_filter

Am Anfang

Ein Before-Filter wird am Anfang eines Controllers definiert, indem die Methode before_filter aufgerufen und ihr die Methode, die ausgeführt werden soll, übergeben wird:

class DemoController < ApplicationController
  before_filter :check
    ...
  protected

  def check
    ...
  end
end

Am Ende

Die Methode, die ausgeführt werden soll, wird am Ende des Controllers als private oder als protected deklariert.

Die häufigste Anwendung des Filters before_filter ist die Authentifizierung bzw. die Abfrage, ob ein User authentifiziert ist.

Normalerweise wird nach Abarbeitung des Before-Filters die eigentliche Action, die aufgerufen wurde, ausgeführt. Dem ist nicht so, wenn der Before-Filter einen redirect - oder einen render -Befehl aufruft. Im folgenden Beispiel wird beim Aufruf der Action index nur der Text before filter ausgegeben. Die Action index wird nicht ausgeführt:

class DemoController < ApplicationController

    before_filter :check

    def index
      render :text => "Index wird gerendert"
    end

    protected

    def check
      render :text => "before filter"
    end
  end
Unterschied zu Rails 1.2
Vor Rails 2.0 konnte das Ausführen der eigentlich aufgerufenen Action nur verhindert werden, wenn der Before-Filter ein false zurückgeliefert hatte.

after_filter

Der Filter after_filter wird immer nach Ausführung der Action, die aufgerufen wurde, ausgeführt, bevor das Template an den Browser ausgeliefert wird.Dieser Filter wird eher selten verwendet. Wenn, dann meistens, um etwas zu komprimieren.

around_filter

Der Filter around_filter wird vor und nach Ausführung der aufgerufenen Action ausgeführt.

Der Around-Filter kann z. B. eingesetzt werden, um die Zeit zu messen, wie lange eine Action ausgeführt wird, und/oder zum Logging, wenn etwas protokolliert werden soll:

class DemoController < ApplicationController

    around_filter :timing

    def index
      render :text => "Index wird gerendert"
    end

    protected

    def timing
      logger.info("vorher: #{Time.now}")
      yield # Aufruf der Action
      logger.info("nachher: #{Time.now}")
    end
  end

  # => vorher: Sun Feb 03 21:26:33 +0100 2008
  # => nachher: Sun Feb 03 21:26:33 +0100 2008

Rheinwerk Computing - Zum Seitenanfang

Filter nur auf bestimmte Actions anwenden  topZur vorigen Überschrift

:except

Mit der Option :except wird der Filter auf alle Actions außer auf die angegebenen angewendet. Mehrere Actions werden als Array übergeben:

# Alle außer index:
before_filter :check, :except=>:index

# Alle außer index und show:
before_filter :check, :except=>[:index, :show]

:only

Mit der Option :only wird der Filter nur auf die angegebenen Actions angewendet. Mehrere Actions werden auch hier als Array übergeben:

# Nur destroy und update:
before_filter :check, :only=>[:destroy, :update]


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
 <<   zurück
  Zum Katalog
Zum Katalog: Ruby on Rails 2
Ruby on Rails 2
Jetzt bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Ruby on Rails 3.1






 Ruby on Rails 3.1


Zum Katalog: Responsive Webdesign






 Responsive Webdesign


Zum Katalog: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


Zum Katalog: JavaScript






 JavaScript


Zum Katalog: Schrödinger lernt HTML5, CSS3 und JavaScript






 Schrödinger lernt
 HTML5, CSS3
 und JavaScript


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
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.


[Rheinwerk Computing]

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