【问题标题】:Devise - Confirmable not sending emails设计 - 可确认不发送电子邮件
【发布时间】:2011-06-01 15:56:03
【问题描述】:

只是为了解决这个问题:我的应用中确实有电子邮件。

我刚刚将 :confirmable 添加到我的用户模型中。

app/models/user.rb

devise :database_authenticatable, :registerable, :omniauthable,
   :recoverable, :rememberable, :trackable, :validatable, :confirmable

我确实在数据库中有可确认的部分:

db/schema.rb

create_table "users", :force => true do |t|
  ...
  t.string   "confirmation_token"
  t.datetime "confirmed_at"
  t.datetime "confirmation_sent_at"
end

由于omniauth,我已经覆盖了registrations_controller:

app/controllers/registrations_controller.rb

def create
  super
  session[:omniauth] = nil unless @user.new_record?
end

所以我想弄清楚的是……我需要添加什么才能:

  1. 获取用户注册后发送的确认邮件

  2. 将用户重定向到自定义页面,说明电子邮件正在等待确认(如果他们在未确认的情况下再次尝试登录,他们会到达该页面)(已回答 here)

  3. (应该自动处理?)验证用户后将他们重定向到给定页面

更新:现在,当我创建用户时,它会自动确认。这是为什么呢?

【问题讨论】:

    标签: ruby-on-rails devise


    【解决方案1】:

    好的,所以我没有意识到我的用户模型中有以下内容:

    def send_confirmation_instructions
      # stops Devise from automatically sending a confirmation email
    end
    
    def confirmation_required?
      skip_confirmation!
    end
    

    将它们注释掉即可发送电子邮件。如果用户未得到确认,仍在尝试弄清楚如何在登录后重定向。并试图弄清楚如何正确使用confirmation_required?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多