19

最近、confirmableモジュールを User クラスに追加しました。私のアプリには既にかなり優れたメール システム (Sidekiq、Sendgrid...) があるので、独自の「アカウント確認」メールを作成しました。ここでの問題は、Devise がデフォルトのメールを送信できないようにすることです。Devise メールシステムを完全に無効にする方法はありますか?

追加した:

  • confirmableモジュールの属性とルートを使用しているため、モジュールを維持したいと考えています。
  • skip_confirmation!ユーザーにアカウントを確認してもらいたいので使えません。
  • Deviseメールを無効にしたいだけです。
4

6 に答える 6

43

ソースを使用してください、ルーク:

# lib/devise/models/confirmable.rb

# A callback method used to deliver confirmation
# instructions on creation. This can be overriden
# in models to map to a nice sign up e-mail.
def send_on_create_confirmation_instructions
  send_devise_notification(:confirmation_instructions)
end

したがって、モデルでこのメソッドをオーバーライドして、何もしないでください。

于 2012-11-23T15:19:08.677 に答える
8

モデルで次のデバイス メソッドをオーバーライドしてみてください。

def confirmation_required?
  !confirmed?
end

または使用skip_confirmation!

user = User.new(params) 
user.skip_confirmation! 
user.save! 
于 2012-11-23T15:22:29.370 に答える
5

skip_confirmationを使用してください!オブジェクトを保存する前のメソッド。

def create
  @user = User.new(params[:user])
  @user.skip_confirmation!
  @user.save!
end
于 2012-11-23T15:14:32.510 に答える
2

外すだけだと思う

:confirmable

ユーザーモデルからそれを行う必要があります

または無効にしてみましたか

config/environments/development.rb

config.action_mailer.default_url_options = { :host => 'localhost:3000' }
于 2012-11-23T14:59:58.243 に答える
1

私はあなたをお勧めします

User.skip_reconfirmation!

それは、確認メールをスキップして、「確認してください」を使用しない更新メールです。

于 2015-11-04T05:54:00.367 に答える
0

remove ( :confirmable) from devise model ex:- ここで私のデバイスモデルは User ここで私はこのように使用しました。

class User < ActiveRecord::Base  
     devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable,:omniauthable

end
于 2016-03-16T11:27:49.507 に答える