19

最近我将该confirmable模块添加到我的用户类中。我的应用程序中已经有一个相当不错的邮件系统(Sidekiq、Sendgrid...),所以我创建了自己的“确认帐户”邮件。现在的问题是禁用 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

从设计模型ex中删除(:confirmable):-这里我的设计模型是用户在这里我像这样使用。

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

end
于 2016-03-16T11:27:49.507 回答