Deviseにてシステムからユーザーのメールアドレスを変更してもメールを送信しない
at 2015-12-09 01:31 (UTC)
Devise を使用していて、手順を踏まずにシステムにてメールアドレスを変更すると保存時にメールが送信されてしまう。
メールを送信したくない場合は skip_reconfirmation!
を使用する。
def change_user_email(user)
user.email = 'new-email@example.com'
user.skip_reconfirmation!
user.save
end
# テストコード
test 'ユーザーのメールアドレスを変更しても、メールが送信されないこと' do
assert_no_difference 'ActionMailer::Base.deliveries.size' do
change_user_email(@user)
end
end
なお、新規作成時に確認手順を飛ばしたい場合は skip_confirmation!
を使う。