ruby-on-rails-3 – 如何“安全地”更改设备中的用户的电子邮件地址?

默认情况下,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

希望这有帮助!

相关文章

以下代码导致我的问题: class Foo def initialize(n=0) @n = n end attr_accessor :n d...
这是我的spec文件,当为上下文添加测试“而不是可单独更新用户余额”时,我得到以下错误. require 's...
我有一个拦截器:DevelopmentMailInterceptor和一个启动拦截器的inititializer setup_mail.rb. 但我想将...
例如,如果我有YAML文件 en: questions: new: 'New Question' other: recent: ...
我听说在RSpec中避免它,let,let !,指定,之前和主题是最佳做法. 关于让,让!之前,如果不使用这些,我该如...
我在Rails中使用MongoDB和mongo_mapper gem,项目足够大.有什么办法可以将数据从Mongoid迁移到 Postgres...