默认情况下,devise 在注册和登录时使用电子邮件地址。
但我希望允许用户更改电子邮件地址。
如果我允许用户编辑电子邮件地址,并且用户指定了一个“不正确”的(即误输入的错字)电子邮件地址,然后用户退出,并且用户还忘记了打错电子邮件地址是什么,那么用户帐户就无法被该用户访问!
如何最好地解决这个问题?(除了创建一个单独的、不可更改的用户名字段,该字段将始终允许用户登录)
默认情况下,devise 在注册和登录时使用电子邮件地址。
但我希望允许用户更改电子邮件地址。
如果我允许用户编辑电子邮件地址,并且用户指定了一个“不正确”的(即误输入的错字)电子邮件地址,然后用户退出,并且用户还忘记了打错电子邮件地址是什么,那么用户帐户就无法被该用户访问!
如何最好地解决这个问题?(除了创建一个单独的、不可更改的用户名字段,该字段将始终允许用户登录)
user = User.find(1)
if user.confirmed?
user.confirmed_at = nil
user.save(:validate => false)
end
重新发送电子邮件确认信:
要重新发送电子邮件确认信:
user = User.find(1)
user.send_confirmation_instructions
希望这能帮到你!
Devise已经内置了这个功能。以下是来自initializer的相关信息:
# If true, requires any email changes to be confirmed (exactly the same way as
# initial account confirmation) to be applied. Requires additional unconfirmed_email
# db field (see migrations). Until confirmed new email is stored in
# unconfirmed email column, and copied to email column on successful confirmation.
config.reconfirmable = true
在确认模块中,您可以了解其工作原理。