禁用设计确认邮件

时间:2012-11-23 14:58:30

标签: ruby-on-rails ruby-on-rails-3 devise devise-confirmable

最近我将confirmable模块添加到了我的User类。我的应用程序中已经有一个非常好的邮件系统(Sidekiq,Sendgrid ......),因此我创建了自己的“确认帐户”邮件。现在的问题是禁用Devise发送其默认电子邮件。有没有办法完全禁用Devise邮件系统?

加了:

  • 我想维护confirmable模块,因为我正在使用它的属性和路由。
  • 我无法使用skip_confirmation!因为我希望用户确认其帐户。
  • 我只想禁用Devise邮件。

6 个答案:

答案 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