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

时间:2012-12-11 10:28:04

标签: ruby-on-rails ruby-on-rails-3 devise rubygems

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

User.create(:first_name => "vidur", :last_name => "punj").confirm!.skip_confirmation!

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

7 个答案:

答案 0 :(得分:25)

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

尝试

user = User.new(:first_name => "blah")
user.skip_confirmation!
user.save

答案 1 :(得分:5)

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

尝试

  user = User.new(:first_name => "vidur", :last_name => "punj")
  user.skip_confirmation!
  user.save! 

答案 2 :(得分:5)

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

答案 3 :(得分:4)

设置confirmed_at字段

User.create!(confirmed_at: Time.now, email: 'test@example.com', ...)

在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')

答案 4 :(得分:3)

如果您对在控制器中编写skip_confirmation!方法的地方感到困惑,因为您尚未生成设计控制器,那么:

将此内容写入 User 模型

before_create :my_method

def my_method
 self.skip_confirmation!
end

现在只需使用:

user = User.new(:first_name => "Gagan")
user.save

答案 5 :(得分:2)

如果您根本不需要确认,则可以删除模型中的:confirmable符号。

答案 6 :(得分:2)

after_create: :skip_confirmation_notification - 检查here

如果您只想在某些条件下skip_confirmation_notification,请使用proc