设计宝石跳过确认并立即通过电子邮件跳过确认

vid*_*unj 13 rubygems ruby-on-rails devise ruby-on-rails-3

我正在使用设计宝石,在创建用户时我想跳过混乱!并跳过confimation电子邮件,例如:

User.create(:first_name => "vidur", :last_name => "punj").confirm!.skip_confirmation!
Run Code Online (Sandbox Code Playgroud)

但它只跳过确认,不会跳过发送确认电子邮件.任何人都可以给我一个跳过这两个想法的想法.

Jam*_*msi 25

你需要调用skip_confirmation!在保存记录之前.

尝试

user = User.new(:first_name => "blah")
user.skip_confirmation!
user.save
Run Code Online (Sandbox Code Playgroud)

  • 根据设计代码..skip_confirmation设置confirmed_at属性......同样的事情确认!确实.请参阅:https://github.com/plataformatec/devise/blob/master/lib/devise/models/confirmable.rb#L116 (2认同)

SG *_* 86 5

您在skip_confirmation之前调用User.create!,您需要稍后调用User.new和user.save.

尝试

  user = User.new(:first_name => "vidur", :last_name => "punj")
  user.skip_confirmation!
  user.save! 
Run Code Online (Sandbox Code Playgroud)


vid*_*unj 5

Got the solution:
 @user=User.new(:first_name => "vidur", :last_name => "punj")
 @user.skip_confirmation!
 @user.confirm!
 @user.save
Run Code Online (Sandbox Code Playgroud)


oma*_*oma 5

设置confirmed_at字段

User.create!(confirmed_at: Time.now, email: 'test@example.com', ...)
Run Code Online (Sandbox Code Playgroud)

在 seeds.rb 中有用

User.create_with(name: "Mr T", company: "Comp X", password: 'rubyrubyruby', password_confirmation: 'rubyrubyruby', confirmed_at: Time.now).find_or_create_by!( email: 'test@example.com')
Run Code Online (Sandbox Code Playgroud)