In Rails 2.8 können wir skip_before_filter wie folgt schreiben
%Vor% Das heißt, ich wollte den Filter require_login
nur auf diese Aktionen [:create,:new,:accept]
anwenden und den Filter für andere überspringen.
Aber es scheint so, veraltet in den Schienen 3. Und Es wird ein neuer skip_filter hinzugefügt. Ich habe das versucht
%Vor%aber es funktioniert nicht, also wie kann ich das in Schienen 3 tun.
skip_before_filter
wurde nicht veraltet, siehe Quelle .
Sie verwenden es wie erwartet.
Wie haben Sie also herausgefunden, dass es nicht richtig funktioniert?
Das ist eine falsche Verwendung von skip_before_filter
.
Um den Filter require_login
ausschließlich auf die Aktionen [:create,:new,:accept]
anzuwenden und den Filter für andere zu überspringen, müssen Sie zuerst den Filter anwenden:
Dann müssen Sie rails anweisen, diesen Filter außer für Aktionen "create, new and accept" zu überspringen.
%Vor% Sie können auch skip_filter
verwenden, wodurch Sie before_filter
, after_filter
und around_filter
filters:
Referenz: Rails 3.2-Handbuch
In Rails 4.0 lauten die entsprechenden Methoden: before_action und: skip_before_action.
Referenz: Rails 4.0-Handbuch
Tags und Links ruby ruby-on-rails before-filter