我有一个用户模型(由 var _origens_list = [
{ id: 1, tipo: "Manual1", nome: "Manual" },
{ id: 2, tipo: "Automática", nome: "Metodo 1" },
{ id: 3, tipo: "Automática", nome: "Metodo 2" },
{ id: 4, tipo: "Automática", nome: "Metodo 3" }
];
创建)并且设置为使用确认(在模型和迁移中)。
创建用户时,未设置确认令牌(并且未发送确认电子邮件)。
这是$ rails g devise User
:
app/models/user.rb
有什么想法吗?
答案 0 :(得分:3)
那是因为你重写confirmation_required?
总是返回false。
查看this
before_create :generate_confirmation_token, if: :confirmation_required?
只有在该方法返回true时才会生成令牌。
confirmation_required?
的默认行为是,如果记录尚未确认,则返回true。
def confirmation_required?
!confirmed?
end
答案 1 :(得分:2)
为了补充@nbermudezs的答案,这个confirmation_required?
方法被添加到设计中以防你想要绕过某些用户的确认(例如有特殊促销代码的用户,或其他什么)
如果你不想有任何例外,我建议你只需删除那些代码行或注释它们,这样你就会回到devise_confirmable的默认行为,这是你想要的那个(和由@nbermudezs提供)
# def confirmation_required?
# false
# end