Rails 4.2.0では、認証にDevise gemを使用しています-devise 3.4.1
。
ユーザーが作成されるとすぐに確認メールが送信されます。この確認メールをスキップして、確認リンクを含むカスタムメールを送信する必要があります。この問題の解決を手伝ってください。
:confirmable
はUserモデルで使用されます。
あなたはこれを試すことができます
@user.skip_confirmation!
@user.save
ユーザーレコードを保存する前にskip_confirmation!
を呼び出します。
確認通知のみをスキップするには、skip_confirmation_notification!
を使用できます
@user.skip_confirmation_notification!
@user.save
お役に立てれば!
追加
変数を作成せずに同じ行で確認をスキップしたい場合で、その特定のユーザーを確認する必要がない場合(例:seeds.rb
):
User.create(email: "#{role_name}@example.com",
password: 'password',
password_confirmation: 'password',
confirmed_at: Time.now.utc, # skip confirmation)
Deviseのビルド内確認メールを無効にしてカスタムメールを送信する代わりに、deviseの確認メールをカスタマイズできます。を使用してデバイスビューファイルを生成できます。
Rails generate devise:views
確認メールをカスタマイズします。
あなたはこれを行うことができます:
これはUserController
@user = User.new(email: "#{role_name}@example.com",
password: 'password',
password_confirmation: 'password',
confirmed_at: Time.now.utc) # skip confirmation
@user.skip_confirmation!
@user.confirm
if @user.save
MyMailer.confirmation(@user)
else
# your implementation
end
ドキュメントを参照してください https://github.com/plataformatec/devise/wiki/How-To:-Use-custom-mailer