【发布时间】:2016-07-22 15:21:03
【问题描述】:
新帐户的设计电子邮件确认发送正常,但重新确认对我不起作用。 我有:
# config/initializers/devise.rb
config.reconfirmable = true
当我登录(确认或未确认)并转到设置更改我的电子邮件地址时,它会保存更改,但不会发送重新确认电子邮件。
我正在使用 mongoid。我将字段 :unconfirmed_email 添加到用户模型中(连同确认所需的所有其他字段。正如我所说的确认有效。)。 我的用户更新操作非常简单:
# registrations_controller
def update
current_user.update_attributes(user_update_params)
redirect_to current_user
end
我的参数包括 :email 字段。
当我更新电子邮件时,它不会复制到 unconfirmed_email 字段。由于某种原因,该字段仍然为零。
有什么我可能遗漏的想法吗? 我正在使用所有最新版本的 Rails、Devise、Mongoid...
更新!
这让我发疯了。 我继续使用 Devise 自己的注册控制器:
# registrations_controller.rb
class Users::RegistrationsController < Devise::RegistrationsController
end
甚至暂停了我自己的用户编辑文档,所以它现在使用基本的设计编辑表单。
而且,它在注册时发送确认就好了,但不发送重新确认。
我在 devise.rb 初始化器中有这个:
config.reconfirmable = true
config.allow_unconfirmed_access_for = 2.days and confirmation_sent_at = Time.now
我的数据库字段:
# user.rb
field :confirmation_token, type: String
field :confirmed_at, type: Time
field :confirmation_sent_at, type: Time
field :unconfirmed_email, type: String
我有这些设计设置:
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable,
:confirmable,
:omniauthable, :omniauth_providers => [:facebook]
无论我多久更新一次电子邮件,unconfirmed_email 都不会更改。 邮件实际上是更新的,如果没有得到确认,这是不合逻辑的。
我错过了什么? 我该如何调试?
【问题讨论】:
标签: ruby-on-rails devise