it-swarm.com.de

Rails-Design: user_signed_in? funktioniert nicht

Ich habe dies aus meiner Sicht:

<% if user_signed_in? %>
<%= current_user.email %>
<% else %>
<%= link_to "Sign in", new_user_session_path %><br />
<%= link_to "Opret", new_user_session_path %><br />
<% end %>

Aber wenn ich mich als Benutzer angemeldet habe: Ich bekomme immer noch die Links im Blick:

<%= link_to "Sign in", new_user_session_path %><br />
<%= link_to "Opret", new_user_session_path %><br />

Warum arbeitet der Helfer nicht?

15
John

Haben Sie Geräte vor dem Filter in Ihrem Controller verwendet?

before_filter :authenticate_user!
22
Brian

Nicht sicher, was sich hinter dem user_signed_in befindet? Methode, entweder Ihr Login funktioniert nicht richtig oder Ihre Methode ist defekt.

Vielleicht versuchen Sie dies, wenn das nicht funktioniert, würde ich einen Blick darauf werfen, was mit dem tatsächlichen Login falsch läuft.

<%unless current_user.blank? -%>
signed in
<%else -%>
not signed in
<%end-%>
8
Scott

Stellen Sie sicher, dass Sie das richtige Modell verwenden. Wenn Ihr Modell Mitglied ist, sollten Sie beispielsweise member_sign_in anstelle von user_sign_in verwenden.

4
ramez emad

Wenn die Anmeldung ordnungsgemäß funktioniert, kann dies an einer Art Caching liegen?

1
rohit.arondekar

Dies könnte eine mögliche Erklärung sein.

Möglicherweise gibt es bereits eine current_user-Methode, die verhindert, dass der in current_user aufgerufene user_signed_in? von Devise die erwarteten Werte zurückgibt.

1
Mayank Singh

Ich war auf genau dasselbe Problem gestoßen und habe es durch erneutes Ausführen von $bundle exec Rails g devise user gelöst. Mein Problem war, dass devise_for users irgendwie in der Routing-Datei fehlte.

0
cat