Ruby on rails 同时设计gem跳过确认和通过电子邮件跳过确认

Ruby on rails 同时设计gem跳过确认和通过电子邮件跳过确认,ruby-on-rails,ruby-on-rails-3,devise,rubygems,Ruby On Rails,Ruby On Rails 3,Devise,Rubygems,我正在使用Desive gem,在创建用户时,我想跳过确认!并跳过确认电子邮件,例如: User.create(:first_name => "vidur", :last_name => "punj").confirm!.skip_confirmation! 但它只跳过确认,不跳过发送确认电子邮件。谁能给我一个跳过这两个的主意。你需要打电话给skip\u确认!在保存记录之前 试一试 您正在呼叫User.create,然后跳过确认!,您需要稍后调用User.new和User.save

我正在使用Desive gem,在创建用户时,我想跳过确认!并跳过确认电子邮件,例如:

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

但它只跳过确认,不跳过发送确认电子邮件。谁能给我一个跳过这两个的主意。

你需要打电话给skip\u确认!在保存记录之前

试一试


您正在呼叫User.create,然后跳过确认!,您需要稍后调用User.new和User.save

试一试


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

设置“确认”字段

Got the solution:
 @user=User.new(:first_name => "vidur", :last_name => "punj")
 @user.skip_confirmation!
 @user.confirm!
 @user.save
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')

如果你不知道在哪里写
跳过确认方法,因为您尚未生成设计控制器,然后:

在您的
用户
模型中编写此代码

before_create :my_method

def my_method
 self.skip_confirmation!
end
现在只需使用:

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

创建后::跳过确认通知
-检查


如果您只想在某些情况下跳过确认通知,请使用proc

这将跳过仅发送确认电子邮件,而不会通过登录表单确认用户登录。根据设计代码。。跳过确认设置已确认的属性。。。同样的事情证实了!做请看:我不能这样做,因为我需要网站其余部分的确认程序。但是我只想在创建用户的特殊情况下跳过它。这真的很有效!但每次调用save时都会触发此操作,包括对数据库进行“插入”和“更新”。我怎么能只将其应用于“插入”,而不是“更新”?@Yang您可以使用“before_create:my_method”回调而不是before_save。太棒了!谢谢分享。
before_create :my_method

def my_method
 self.skip_confirmation!
end
user = User.new(:first_name => "Gagan")
user.save