Rails 3 с Devise: как показать сообщение на всех страницах, если пользователь не подтвердил адрес электронной почты?

Я разрабатываю приложение Rails 3, используя для аутентификации гем Devise. Я также использую подтверждаемый модуль Devise для отправки электронных писем пользователям, когда они регистрируются, с просьбой подтвердить свой адрес электронной почты.

Я разрешаю пользователям входить в систему, даже если они не подтвердили свой адрес электронной почты (максимум 20 дней), однако я хочу, чтобы вверху каждой страницы отображалось сообщение, напоминающее им, что они не подтвердили свой адрес электронной почты и что они все еще могут войти в систему, не делая этого в течение X дней.

Любые идеи о том, как я должен подойти к этому? (т.е. любые полезные драгоценные камни или советы)

Большое спасибо !!!


person Andrei Polmolea    schedule 14.01.2012    source источник


Ответы (1)


Глядя на документы здесь: http://rubydoc.info/github/plataformatec/devise/master/Devise/Models/Confirmable

Кажется, есть метод confirmed?, который вы можете вызвать для объекта User, чтобы узнать, подтверждены они или нет.

Так что я бы просто поставил галочку на подтверждение в вашем views/layouts/application.html.erb файле:

<% if user_signed_in? && !current_user.confirmed? %>
  <div>
    Please confirm your account by clicking the link in the email we sent to <%= current_user.email %>
  </div>
<% end %>
person iwasrobbed    schedule 15.01.2012
comment
Большое спасибо @iWasRobbed, это великолепно !! - person Andrei Polmolea; 15.01.2012