Ist es in Rails möglich zu überprüfen, ob bereits ein Redirect oder Render ausgegeben wurde?

Ruby 2.0.2, Rails 4.0.3, Sorcery 0.8.5

Ich habe versucht, eine Umleitung in meinem Code auszustellen, nur um die Fehlermeldung zu erhalten, dass bereits eine Umleitung oder ein Rendering ausgeführt wurde. In diesem Fall komme ich gerne wieder. Wenn die Methode jedoch aus einem anderen Grund aufgerufen wird, möchte ich überprüfen, ob eine Umleitung oder ein Rendering ausgegeben wurde, und, falls nicht, ausgeben. Der Code ist eine Authentifizierung basierend auf Sorcery.

In der Anwendungssteuerung habe ich:

  def not_authenticated
    redirect_to login_url # , :alert => "First log in to view this page."
  end

Am Ende wird wie folgt nach current_user gesucht:

  def current_user
    @current_user ||= @view.current_user unless @view.blank?
    begin
      @current_user ||= Associate.find(session[:user_id]) unless session[:user_id].blank?
    rescue ActiveRecord::RecordNotFound => e
      return
    end
    current_user = @current_user
  end

Bei der Rettung möchte ich feststellen, ob bereits eine Umleitung oder ein Rendering stattgefunden hat, damit ich ansonsten auf login_url umleiten kann. Dies würde natürlich bedeuten, dass es von einer anderen Methode aufgerufen wurde, die es ist. Vielen Dank

Antworten auf die Frage(1)

Ihre Antwort auf die Frage