簡體   English   中英

如何在Rails中使Devise skip_confirmation實際不發送電子郵件?

[英]How to get Devise in Rails skip_confirmation to actually not send an email?

我一直試圖為用戶提供種子以測試我的Rails站點,並遇到一個問題,即在保存用戶時,我的設置會發送一封確認電子郵件。 將其乘以100個虛擬用戶,您就會遇到問題。 Rails文檔和SO導致我進行了skip_confirmation! ,按以下幾行[0]:

user = User.new(:username => name, :email => email, :password =>    password)
user.skip_confirmation!
user.save

但是,(驚訝的是)每次保存時仍然會發送一封電子郵件。 如何讓Devise停止這樣做?

[0] https://stackoverflow.com/a/8673771/4283301

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

您還可以從user.rb文件中的以下代碼中刪除:confirmable

devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :confirmable, :async

在您的測試環境中, ActionMailer::Base.delivery_method應該設置為:test ,這意味着這些電子郵件將不會發送出去。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM