Seite 1 von 1

Bestimmte Action bei jedem Request durchführen

BeitragVerfasst: 09.07.2008, 23:27
von ramsi
Hallo Zusammen,

ich bin neu in der RoR-Welt und stoße sehr schnell an meine Grenzen- Hoffe, Ihr könnt mir weiterhelfen.

Ich möchte bei jedem Request eine bestimmte Action bzw. Methode durchführen/aufrufen- diese soll aber vor der eigentlichen Logik/Action, die im Controller angegeben ist, stattfinden.
Ich weiß, dass es die verschiedenen Filterarten gibt. Ich könnte die before_filter nutzen, nur müsste ich so die Methode in jedem Controller definieren bzw. sie aus dem Controller heraus aufrufen.
Gibt es in Rails einen bestimmten Controller (oder ähnliches), der bei JEDEM Request durchlaufen wird? Wenn es der Fall ist, könnte ich die Methode dorthin platzieren und müsste mich in den einzelnen Controller gar nicht drum kümmern.

Kann mir jemand weiterhelfen? Bin für jede Hilfe dankbar!

Gruß
ramsi

Re: Bestimmte Action bei jedem Request durchführen

BeitragVerfasst: 10.07.2008, 16:09
von megawatt
Hallo Ramsi,

wenn ich das richtig verstehe, ist die Antwort auf deine Frage die Datei controllers/application.rb. Die hier abgelegten Methoden werden bei jedem Controller-Zugriff ausgeführt. Oder meinst du was anderes?

Re: Bestimmte Action bei jedem Request durchführen

BeitragVerfasst: 10.07.2008, 23:59
von ramsi
Hallo megawatt :-)

ja, genau das meine ich... Ich habe jetzt zum Testen einfach eine Methode in die application.rb eingefügt und versucht einen String über die Konsole auszugeben- hat aber nicht funktioniert... Woran könnte das liegen?

Danke für Deine Antwort.

Re: Bestimmte Action bei jedem Request durchführen

BeitragVerfasst: 12.07.2008, 15:41
von megawatt
Hallo Ramsi,

Du solltest mal deinen Code posten.

Re: Bestimmte Action bei jedem Request durchführen

BeitragVerfasst: 13.07.2008, 12:42
von ramsi
Hallo megawatt,

okay, ich hab es verstanden. Ich muss tatsächlich in jedem Controller den before_filter setzen, dann klappt es auch einwandfrei.

Danke Dir!

Viele Grüße
Ramsi

Re: Bestimmte Action bei jedem Request durchführen

BeitragVerfasst: 13.07.2008, 19:16
von megawatt
Hallo Ramsi,

nein, du musst das nicht in jeden Controller schreiben, sondern:

Code: Alles auswählen
class ApplicationController < ActionController::Base
  ...

before_filter :deine_action

  private
  def deine_action
    ...
  end

end


Einmal reicht also völlig aus ...

Re: Bestimmte Action bei jedem Request durchführen

BeitragVerfasst: 14.07.2008, 20:30
von ramsi
Danke, funktioniert super!