我将设备与 facebook 集成。现在,当我在用户使用他/她的 Facebook 帐户登录后创建用户帐户时,
user = User.create(:email => data["email"],
:password => Devise.friendly_token[0,20])
user.confirmed_at = DateTime.now
user.save!
即使帐户已得到确认,仍会发送确认电子邮件。知道如何关闭电子邮件发送吗?
确认回调发生在创建之后,因此它发生在示例的第一行,在设置之前confirmed_at
手动。
根据评论,最正确的做法是使用为此目的提供的方法,#skip_confirmation! https://github.com/plataformatec/devise/blob/master/lib/devise/models/confirmable.rb#L156。环境confirmed_at
手动也可以,但它绕过了提供的 API,这是应该尽可能避免的事情。
所以,像这样:
user = User.new(user_attrs)
user.skip_confirmation!
user.save!
原答案:
如果您通过了confirmed_at
和你的create
根据争论,不应发送邮件,因为测试帐户是否已“确认”是为了查看是否设置了该日期。
User.create(
:email => data['email'],
:password => Devise.friendly_token[0,20],
:confirmed_at => DateTime.now
)
那,或者只是使用new
代替create
建立您的用户记录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)