最近我将confirmable
模块添加到了我的User类。我的应用程序中已经有一个非常好的邮件系统(Sidekiq,Sendgrid ......),因此我创建了自己的“确认帐户”邮件。现在的问题是禁用Devise发送其默认电子邮件。有没有办法完全禁用Devise邮件系统?
加了:
confirmable
模块,因为我正在使用它的属性和路由。skip_confirmation!
因为我希望用户确认其帐户。Devise
邮件。答案 0 :(得分:40)
使用来源,Luke:
# 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
因此,在模型中覆盖此方法不执行任何操作。
答案 1 :(得分:7)
尝试覆盖模型中的以下设计方法:
def confirmation_required?
!confirmed?
end
或使用skip_confirmation!
:
user = User.new(params)
user.skip_confirmation!
user.save!
答案 2 :(得分:4)
使用skip_confirmation!保存任何对象之前的方法。
def create
@user = User.new(params[:user])
@user.skip_confirmation!
@user.save!
end
答案 3 :(得分:2)
我想删除
:confirmable
来自用户模型的应该这样做
或者您尝试过禁用
config/environments/development.rb
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
答案 4 :(得分:0)
我建议你
User.skip_reconfirmation!
即跳过确认邮件并更新电子邮件不使用“确认!”
答案 5 :(得分:0)
从设计模型中删除(:confirmable
)
例如: - 这里我的设计模型是用户
我在这里使用这个。
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,:omniauthable
end