我正在使用设计宝石,在创建用户时我想跳过混乱!并跳过confimation电子邮件,例如:
User.create(:first_name => "vidur", :last_name => "punj").confirm!.skip_confirmation!
但它只跳过确认,不会跳过发送确认电子邮件。任何人都可以给我一个跳过这两个的想法。
答案 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