ruby-on-rails-3 - 如何在设计 "safely"中更改用户的电子邮件地址?

标签 ruby-on-rails-3 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

希望这有帮助!

关于ruby-on-rails-3 - 如何在设计 "safely"中更改用户的电子邮件地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4656578/

相关文章:

ruby-on-rails-3 - 使用多态模型渲染 RABL 局部

ruby-on-rails - Rails Ajax Jquery 删除之后提交 Post 请求

mysql - MongoDB 与 MySQL

ruby-on-rails - 设计没有 session cookie 的 token_authenticable

ruby-on-rails - 在 Action Mailer 中设置实例变量?

sql - 数据库日期时间值冲突

ruby-on-rails - 如何在注册和身份验证失败时重定向 Devise?

ruby-on-rails - Rails Devise 注册表单未定义方法 `devise_error_messages!'

ruby-on-rails - Rails - 设计 - 处理 - devise_error_messages

ruby-on-rails - 升级到 Rails 7.1 会破坏设备身份验证,但不会影响开发