2015-04-05 33 views
0

我一直試圖讓種子用戶測試我的Rails站點,並遇到了保存用戶的問題,我的設置會發送一封確認郵件。乘以100個虛擬用戶,你有問題。 Rails文檔和SO導致我skip_confirmation!,大意如下[0]:如何讓Rails中的設計skip_confirmation實際上不發送電子郵件?

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

然而,(驚喜驚喜),這仍然發出了一封電子郵件,每次保存。我該如何讓Devise停止這樣做?

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

回答

1

設計的#skip_confirmation!是誤導性的。它說:「如果你不想在創建時發送確認,則不需要生成代碼,請調用skip_confirmation !.」

真的,我在這種情況下尋找的是#skip_confirmation_notification!。該文檔使得這種「跳過發送確認/重新確認通知電子郵件after_create/after_update」的區別。

This Works!爲了讓上面的代碼不發送確認電子郵件,它應該是這樣的:

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

你也可以簡單地刪除下面的代碼:confirmable在user.rb文件

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

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

+0

目標是在生產和開發中進行電子郵件確認,但不進行測試 - 刪除:可確認刪除所有環境中的電子郵件確認 – 2015-04-05 06:08:30