Ich versuche, Devise so zu konfigurieren, dass immer, wenn ein Benutzer, dessen Konto nicht bestätigt wurde, sich anmeldet, er an die new_confirmation_path
umgeleitet wird.
Dies ist, was ich bisher habe:Rails, Devise: DoubleRenderError in FailureApp
lib/custom_failure.rb
class CustomFailure < Devise::FailureApp
def redirect_url
if warden_message == :unconfirmed
redirect_to new_user_confirmation_path(q: "unconfirmed")
else
super
end
end
def respond
if http_auth?
http_auth
else
redirect
end
end
end
config/application.rb
config.autoload_paths << Rails.root.join('lib')
config/initializers/devise .rb
config.warden do |manager|
manager.failure_app = CustomFailure
end
Leider bekomme ich folgende Fehlermeldung, wenn ein Benutzer anmelden versucht:
AbstractController :: DoubleRenderError in Users :: SessionsController # erstellen
Render und/oder umleiten wurden mehrere Male in dieser genannt Aktion. Bitte beachten Sie, dass Sie nur render oder redirect und höchstens einmal pro Aktion aufrufen können. Beachten Sie auch, dass weder die Weiterleitung noch die Ausführung der Aktion beendet werden. Wenn Sie also eine Aktion nach der Weiterleitung beenden möchten, müssen Sie etwas wie "redirect_to (...) and return" ausführen.
Fehler in lib/custom_failure.rb (um Zeile # 15)
Ich folgte diesem Devise Wiki Page