14

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

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

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

4

7 回答 7

28

您需要致电skip_confirmation!在保存记录之前。

尝试

user = User.new(:first_name => "blah")
user.skip_confirmation!
user.save
于 2012-12-11T10:43:27.607 回答
5

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

尝试

  user = User.new(:first_name => "vidur", :last_name => "punj")
  user.skip_confirmation!
  user.save! 
于 2012-12-11T10:43:56.860 回答
5
Got the solution:
 @user=User.new(:first_name => "vidur", :last_name => "punj")
 @user.skip_confirmation!
 @user.confirm!
 @user.save
于 2012-12-11T10:56:24.353 回答
4

设置 confirm_at 字段

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

在种子中有用.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')
于 2014-08-10T14:05:25.580 回答
4

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

把它写在你的User模型中

before_create :my_method

def my_method
 self.skip_confirmation!
end

现在只需使用:

user = User.new(:first_name => "Gagan")
user.save
于 2015-04-17T09:44:19.177 回答
3

after_create: :skip_confirmation_notification -在这里检查

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

于 2018-01-08T17:07:13.663 回答
2

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

于 2012-12-11T10:44:42.247 回答