我将rails
与devise
一起使用。
通常我希望用户确认他们的电子邮件地址,但有时我需要代表现有用户手动更改电子邮件,我想跳过发送确认电子邮件。
当 * 创建 * 新用户时,我可以跳过确认电子邮件:
user.skip_confirmation!
......但这似乎不适用于已经确认的现有用户--只要email属性没有更新,并且devise
仍然要求用户确认新邮件并发送确认邮件:
@user = User.find_by_email('bob@site.example')
@user.email = 'dead@site.example'
@user.skip_confirmation!
@user.save!
5条答案
按热度按时间7uzetpgm1#
您要使用的方法是
skip_reconfirmation!
(注意再确认中的're')。pgvzfuti2#
试着将
Devise.reconfirmable
或User.reconfirmable
(或者任何你的模型)设置为false,你可以在config/initializers/devise.rb
的下面一行设置它:您还可以使用Active Record的
update_column
方法,该方法在不运行回调或验证的情况下保存字段。7gcisfzg3#
您可以在您的型号
# models/users.rb
中使用此类代码。这将禁用更新时的电子邮件重新确认:或在控制器中
7cwmlq894#
如果只想跳过电子邮件通知,请执行以下操作:
eqqqjvef5#
更新电子邮件时,请跳过_重新确认!
跳过_重新确认!