Rails Entwickeln after_sign_in_path_for(Ressource) - Methode nicht funktionieren, wie erwartet

Ich umleiten möchten einen inaktiven Benutzer zu der Registrierung Pfad, um bestimmte Informationen zu sammeln. Hier sind zwei Ansätze, die ich nahm, aber weder ist die Arbeit:

Ich überschrieb das Gerät after_sign_in_path-Methode wie folgt (in application_controller.rb):

def after_sign_in_path_for(resource)
    debugger
    if(account_active)
        return root_path;
    else
        return edit_user_registration_path(resource)
    end
end

Beim hakte ich den code bis zu debugger sehe ich, dass entwickeln, nennt after_sign_in_path_for. Auch die korrekte url erzeugt wird, die durch diesen Aufruf:

(rdb:2)  after_sign_in_path_for(resource)
"/users/edit.1"

Jedoch, wenn ich einen Blick in die server-logs, es ist kein Versuch gemacht wird, einen redirect zu "/Benutzer/Bearbeiten.1" unter keinen Umständen.

Ich habe versucht, verschieben Sie das obige Verfahren, um application_helper.rb, session_controller.rb (durch die Erweiterung Entwickeln::SessionController) und session_helper.rb

Das Problem ist, dass das entwickeln tut, rufen Sie diese Methode zum abrufen der url, aber es nie versucht den redirect. Ich habe die web-server-logs, und entwickeln geht direkt in die user_root url.

Hier ist der entsprechende entwickeln, Konfiguration von Routen.rb:

devise_for :users do
    resource :registration,
    only: [:new, :create, :edit, :update],
    path: 'users',
    path_names: { new: 'sign_up' },
    controller: 'devise/registrations',
    as: :user_registration do
        get :cancel
    end


    root :to => "home#index"        
end

  match '/user' => "products#index", :as => 'user_root'

Irgendwelche Vorschläge, was ich versuchen sollte?

Dank,

Tabrez

InformationsquelleAutor Tabrez | 2012-01-21
Schreibe einen Kommentar