我一直试图让用户试用我的Rails网站并遇到了一个问题,即在保存用户时,我的设置会发送一封确认电子邮件。乘以100个虚拟用户并且您遇到问题。 Rails文档和SO引导我skip_confirmation!
,沿着以下行[0]:
user = User.new(:username => name, :email => email, :password => password)
user.skip_confirmation!
user.save
但是,(惊喜)这仍然发送了一封包含每次保存的电子邮件。我怎样才能让Devise停止这样做?
答案 0 :(得分:1)
Devise的#skip_confirmation!
具有误导性。它说“如果你不想在创建时发送确认,也不想生成代码,请调用skip_confirmation!”
在这种情况下我真正想要的是#skip_confirmation_notification!
。该文档区分了这个“跳过发送确认/再确认通知电子邮件after_create / after_update。”
这个有效!要使上述代码不发送确认电子邮件,它应如下所示:
user = User.new(:username => name, :email => email, :password => password)
user.skip_confirmation_notification!
user.save
答案 1 :(得分:1)
您也可以从user.rb文件中的以下代码中删除:confirmable
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :confirmable, :async
在您的测试环境中,ActionMailer::Base.delivery_method
应设置为:test
,这意味着这些电子邮件不会被发送出去。