![](/img/trans.png)
[英]Rails Devise and skip_confirmation!, how to avoid autologin
[英]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停止這樣做?
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.