Devise создает удобные методы на лету, которые представляют вашего текущего зарегистрированного пользователя.
Однако вы должны отметить, что сгенерированное имя метода включает имя класса вашей пользовательской модели.например, если ваша модель Devise называется 'User
', то к текущему вошедшему в систему пользователю можно получить доступ с помощью 'current_user
', а если ваш класс Devise имеет значение 'Admin
', то к авторизованному администратору можно получить доступ с помощью 'current_admin
'.
Существует ряд других методов, созданных с похожими соглашениями, например' user_signed_in?
'или снова' admin_signed_in?
', которые действительно хороши.
Этиметоды доступны в контроллерах и представлениях, поэтому в представлении может быть следующее:
<% if user_signed_in? %>
<div>Signed in as... <%= current_user.email %></div>
<% end %>
Наконец, если вы используете в своем приложении две или более модели Devise (например, User и Admin), вы можете использоватьудобный метод 'anybody_signed_in?
', чтобы проверить, вошли ли пользователи любого из этих типов:
<% if anybody_signed_in? %>
<h2>Special offers</h2>
<p>All registered users will receive free monkeys!</p>
<% end %>
Обновление:
Начиная с версии 1.2.0 Devise, 'anybody_signed_in?
' устарела и заменена на 'signed_in?
'