Ruby on rails 3 设计可再确认的

Ruby on rails 3 设计可再确认的,ruby-on-rails-3,devise,devise-confirmable,Ruby On Rails 3,Devise,Devise Confirmable,我想使用Desive选项:在我的用户模型中可重新确认,因此每当用户更改其电子邮件时,他都需要通过电子邮件发送的链接来确认 最大的问题是,电子邮件从未发送过 我的设置使用的是Desive 2.1.2 is: 用户模型: attr_accessible: unconfirmed_email, ... devise :invitable, :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable

我想使用Desive选项:在我的用户模型中可重新确认,因此每当用户更改其电子邮件时,他都需要通过电子邮件发送的链接来确认

最大的问题是,电子邮件从未发送过

我的设置使用的是Desive 2.1.2 is:

用户模型:

attr_accessible: unconfirmed_email, ...

devise :invitable, :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :confirmable, :omniauthable
在initilizer designe.rb中:

config.reconfirmable = true
在路线上:

devise_for :users
在表单中,模型字段unconfirm_email设置正确。我通过控制台检查了这个

当用户在页面上注册时,第一封确认电子邮件将毫无问题地发送出去

我尝试调试将此代码添加到initializers目录以覆盖作为after_update挂钩触发的Desive methode的问题:

module Devise::Models::Confirmable
  def send_confirmation_instructions
    debugger
  end
end
似乎从未调用发送确认指令,因为我从未访问过调试器

我是否需要调用Reconfirmatible,还是在将模型属性“unconfirmed_email”设置为新电子邮件地址时自动触发

感谢你的帮助,
j

好吧,这太尴尬了

在深入研究设计代码之后,我发现您不需要设置用户模型的
unconfirmed_email
属性,只需更改现有的email属性即可。属性
unconfirmed_email
仅在designe内部用于存储电子邮件地址,直到确认为止

Desive gem的更高版本在初始迁移中解释了这一点。以下是来自
XXX\u designe\u create\u users.rb
migration的“可确认”部分(注意最后一行的注释):

  ## Confirmable
  t.string   :confirmation_token
  t.datetime :confirmed_at
  t.datetime :confirmation_sent_at
  t.string   :unconfirmed_email # Only if using reconfirmable

很抱歉打扰您,但希望这能帮助有同样问题的人…

要重新确认工作,您必须在用户表“t.string:unconfirm_email”中添加一个新列,前提是使用“reconfirm”,您已经这样做了吗?您好,詹德斯。这一切都设置好了,我在我的用户模型和属性中都有属性。。。我还没有解决这个问题,所以任何帮助都是很好的。对不起,我不知道怎么回事。谢谢。很高兴知道,当我在模型中更新
电子邮件时,designe“自动”填充
未确认的电子邮件
。别忘了将你的答案标记为“已接受”(是的,即使你自己回答了!)。是的。。。你想得对。。即使是2年后。。这对我很有帮助