6

Ich habe Setup auf Rails 4.2.0 und alles scheint zu funktionieren, ich habe die verwendet Führung an:Rails Devise: "Sie müssen sich anmelden oder registrieren, bevor Sie fortfahren" anstelle von "Sie erhalten eine E-Mail mit Anweisungen .."

http://sourcey.com/rails-4-omniauth-using-devise-with-twitter-facebook-and-linkedin/

Meine devise Module sind:

devise :database_authenticatable, :registerable, :confirmable, 
     :recoverable, :rememberable, :trackable, :validatable, :omniauthable 

Das einzige Problem ist, dass, wenn ich versuche, indem Sie auf die Anmeldeseite ein neues Konto zu erstellen, dann nach meiner E-Mail-Eingabe und neues Passwort (zweimal), ich bin zurück auf die Anmeldeseite und sehe th e 'nicht authentifizierten' message:

You need to sign in or sign up before continuing 

Wenn stattdessen sollte ich die 'send_instructions' Meldung:

You will receive an email with instructions for how to confirm your email address in a few minutes. 

ich before_filter in meinem Application haben:

before_filter :authenticate_user!, :except => [:show] 

Obwohl ich gestehen, dass Ich verstehe nicht, warum mir das auf der Anmeldeseite oder der Seite "Passwort vergessen" keine Authentifizierungsfehler gibt. So oder so habe ich versucht, hinzuzufügen: new_user_session zu dem: außer, aber das hat nicht geholfen.

Wie kann ich die richtige Blitzmeldung erhalten, wenn jemand sich anmeldet?

ich einen des devise Code nicht außer Kraft gesetzt habe (anders als das, was die sourcey doc schon sagt), nur mein DeviseHelper die Flash-Mitteilungen für den Druck ein Verfahren hat:

def devise_error_messages! 
    return '' if resource.errors.empty? 

    messages = resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join 
    messages.html_safe 
end 

EDIT:

Meine anfängliche Suche nach SO nicht helfen (zu vielen ähnlichen Fragen, die nicht relevant waren), aber jetzt habe ich das gefunden:

devise sign_in after sign_out error

Also glaube ich das Problem ist, dass Devise versucht, mich zu meinem Root-Pfad zu nehmen, nachdem ich die Aktion sign_up ausgeführt habe. Ich weiß nicht, warum es das für eine bestätigbare Einrichtung tun würde, es scheint, dass es mich zurück zur Seite sign_in bringen sollte. mit

Ich habe versucht, dies durch zwingende ‚after_sign_up_path_for‘ in einer cutom Registrierungen Controller außer Kraft zu setzen:

Override devise registrations controller

Vielleicht habe ich es falsch, aber das schien nicht zu helfen.

Jetzt ist die Frage, wie bekomme ich Devise, um zurück zur sign_in Seite zu gehen, nachdem jemand eine sign_up macht, und warum ist dies nicht die Standardaktion für eine bestätigbare Einrichtung?

+0

Haben Sie die Lösung gefunden? –

+0

Leider hat es so lange gedauert, dass ich dieses Projekt ins Back-Shelf gestellt habe und noch keine Chance hatte, wieder in den Kontext zu wechseln. –

Antwort

1

Sie haben das Überschreiben after_sign_up_path_for in einem benutzerdefinierten Registrations-Controller erwähnt, aber folgen Sie der Anweisung in this link, möchten Sie möglicherweise versuchen, das in Ihrem application_controller.rb zu platzieren.