Rails devise: user_signed_in? не работает - PullRequest
15 голосов
/ 14 мая 2011

У меня есть это на мой взгляд:

<% 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 %>

Но когда вы вошли в систему как пользователь: Я по-прежнему вижу ссылки:

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

Почему помощник не работает?

Ответы [ 6 ]

22 голосов
/ 15 мая 2011

Вы использовали devise's before filter в вашем контроллере?

before_filter :authenticate_user!
8 голосов
/ 14 мая 2011

Не уверен, что стоит за user_signed_in?метод, либо ваш логин не работает должным образом, либо ваш метод не работает.

Возможно, попробуйте это, если это не сработает, я бы посмотрел, что не так с реальным логином.1004 *

4 голосов
/ 04 апреля 2015

Убедитесь, что вы используете правильную модель.Например, если ваша модель является членом, вы должны использовать member_sign_in вместо user_sign_in.

1 голос
/ 23 августа 2016

Это может быть возможным объяснением.

Возможно, у вас уже есть существующий метод current_user, который не дает Devise's current_user, вызванному в user_signed_in?, вернуть ожидаемые значения.

1 голос
/ 15 мая 2011

Если логин работает нормально, это может быть из-за какого-то кеширования?

0 голосов
/ 14 марта 2016

Я столкнулся с точно такой же проблемой и решил ее, выполнив $bundle exec rails g devise user еще раз.Моя проблема была devise_for users как-то отсутствует в файле маршрутизации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...