2012-02-20 2 views
1

Я новичок в рельсах. Я столкнулся с чем-то странным, когда впервые использую Devise. Не могли бы вы сообщить мне, если это ошибка или проблема на моем конце?Проблема с Devise Подтверждение электронной почты

Я использую Придумайте 2.0.1

После того, как новый пользователь вверх, по электронной почте отправляется на адрес электронной почты.

Случай 1:

Эта часть Ok

После подтверждения через ссылку по электронной почте, он может получить доступ ко всему сайту.

Случай 2:

Эта часть не Ok

После я подпишу, я сразу, без нажатия на ссылку подтверждающим, я иду, чтобы войти в страницу и попробуйте войти в систему с только что созданной учетной записи электронной почты и пароль, он не показать любые ошибки, это просто маршруты на страницу sign_in .. в идеале я хотел бы, чтобы показать что-то вроде ошибки

"We have sent you an email. Please confirm. 
If you have not received them please ask for conformation instructions" 

Случай 3:

Эта часть не Ok

после регистрации, я нажимаю забыл пароль LNK. Я ввожу адрес электронной почты, с которым я только что подписался. Он отправляет мне инструкции по сбросу пароля. Вместо инструкций по сбросу пароля я бы в идеале хотел бы выслать мне сообщение об ошибке "Email first has to been confirmed first in order to send reset password instructions."

С нетерпением жду вашей помощи и технической поддержки.

Благодаря

ответ

2

Если мне нужно, чтобы люди знали о подтверждениях, я обычно установить это в одном из моих контроллеров:

render :template => 'shared/unconfirmed' and return if current_user.confirmed? == false 

Это останавливает людей делать что-либо, если они не подтвердили, и ограничение требования определяют, где я его разместил. Например, если вы хотите запретить людям делать все до тех пор, пока они не подтвердятся, поместите их в файл before_filter в вашем приложении_controller. Если вы хотите, чтобы они перестали создавать сообщения, поместите их в контроллер сообщений.

Для этого, чтобы работать, вы действительно должны также изменить значение по умолчанию «config.confirm_within» настройки в файле конфигурации devise.rb, чтобы люди в:

# ==> Configuration for :confirmable 
# A period that the user is allowed to access the website even without 
# confirming his account. For instance, if set to 2.days, the user will be 
# able to access the website for two days without confirming his account, 
# access will be blocked just in the third day. Default is 0.days, meaning 
# the user cannot access the website without confirming his account. 
# config.confirm_within = 2.days 
+0

Я пытался делать это .. но я получаю сообщение об ошибке! Кроме того, я не хочу давать пользователю 2-дневный доступ в первую очередь. Я больше смотрю на Devise Bug .. Case 3 и Case 2, упомянутые выше .. – gkolan

Смежные вопросы