ich die before_action in application_controller.rb verwenden möchten, und dann einige skip_before_action
s einige Websites zu verhindern, dass aufgerufen wird, bevor ein Benutzer angemeldet ist.Ruby on Rails skip_before_action hat nicht in meiner Anwendung beeinflussen
Aber die definierte Funktion in meinem application_controller.erb heißt nicht ...
application_controller.erb
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
layout "application"
before_action :user_logged_in, :set_locale
private
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
# Prüft ob ein Nutzer eingeloggt ist.
def user_logged_in
puts "HA"
if session[:user_id].nil?
flash[:error] = "error"
redirect_to :controller => :startsites, :action => :index
else
flash[:error] = "ok"
redirect_to :controller => :startsites, :action => :index
end
end
end
Die puts "HA" in user_logged_in
ist nicht in meinem Server Konsole ausgegeben. Also ich denke die Funktion wird noch nicht genannt. Aber warum?
Und in einigen Controllern habe ich versucht, diese zu nutzen:
class MoviesController < ActionController::Base
skip_before_action :user_logged_in, only: [:index, :show]
also not working ... why?
Ihnen sehr für Ihre Hilfe danken.
try Änderung 'Klasse MoviesController
7urkm3n
Wenn es geholfen hat, können Sie die Antwort thx akzeptieren. – 7urkm3n