Bestimmte Action bei jedem Request durchführen

Fragen zur Controllerprogrammierung, Actions & Vermittlung zwischen Model und View

Bestimmte Action bei jedem Request durchführen

Beitragvon ramsi am 09.07.2008, 23:27

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
ramsi
 
Beiträge: 5
Registriert: 09.07.2008, 23:03

Re: Bestimmte Action bei jedem Request durchführen

Beitragvon megawatt am 10.07.2008, 16:09

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?
megawatt
 
Beiträge: 30
Registriert: 06.12.2007, 20:38

Re: Bestimmte Action bei jedem Request durchführen

Beitragvon ramsi am 10.07.2008, 23:59

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.
ramsi
 
Beiträge: 5
Registriert: 09.07.2008, 23:03

Re: Bestimmte Action bei jedem Request durchführen

Beitragvon megawatt am 12.07.2008, 15:41

Hallo Ramsi,

Du solltest mal deinen Code posten.
megawatt
 
Beiträge: 30
Registriert: 06.12.2007, 20:38

Re: Bestimmte Action bei jedem Request durchführen

Beitragvon ramsi am 13.07.2008, 12:42

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
ramsi
 
Beiträge: 5
Registriert: 09.07.2008, 23:03

Re: Bestimmte Action bei jedem Request durchführen

Beitragvon megawatt am 13.07.2008, 19:16

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 ...
megawatt
 
Beiträge: 30
Registriert: 06.12.2007, 20:38

Re: Bestimmte Action bei jedem Request durchführen

Beitragvon ramsi am 14.07.2008, 20:30

Danke, funktioniert super!
ramsi
 
Beiträge: 5
Registriert: 09.07.2008, 23:03


Zurück zu C - Controller

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast