设计可再确认的

2024-01-11

我想在我的用户模型中使用 devise 选项 :reconfirmable ,因此每当用户更改其电子邮件时,他需要通过电子邮件发送的链接进行确认。

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

我的 devise 2.1.2 的设置是:

用户模型:

attr_accessible: unconfirmed_email, ...

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

在初始化器 devise.rb 中:

config.reconfirmable = true

在路线中:

devise_for :users

在表单中,模型字段 unconfirmed_email 已正确设置。我通过控制台检查了这一点。

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

我尝试通过将此代码添加到初始值设定项目录来调试问题,以覆盖作为 after_update 挂钩触发的设计方法:

module Devise::Models::Confirmable
  def send_confirmation_instructions
    debugger
  end
end

似乎 send_confirmation_instructions 从未被调用,因为我从未进入调试器。

我是否需要以某种方式调用可重新确认,或者将模型属性“unconfirmed_email”设置为新电子邮件地址时是否会自动触发?

感谢您的任何帮助, j。


好吧,这就尴尬了。。

在深入研究 Devise 代码后,我发现你不需要设置unconfirmed_email您的用户模型的属性,但只需更改现有的电子邮件属性。属性unconfirmed_email仅用于 Devise 内部存储电子邮件地址,直至其得到确认。

后来版本的 devise gem 在初始迁移中解释了这一点。这是“可确认”部分(注意最后一行的注释)XXX_devise_create_users.rb移民:

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

抱歉打扰了,但希望这可以帮助遇到同样问题的人......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设计可再确认的 的相关文章

随机推荐

  • iPhone Flash 中的不同屏幕尺寸? (出现黑条)

    我是整个编码世界的新手 而 ActionScript 3 是我第一次真正的体验 如果我不能立即理解您的答案 很抱歉 我在 AIR for iOS 中使用 Adob e Flash CC 构建了一个 iPhone 应用程序 所有代码都位于时间
  • Angular 6:如何使用 Angular Material 隐藏无线电圆圈并使用 NgStyle 来检查答案?

    我在两件事上遇到了麻烦 隐藏 mat radio group 的圆圈 如果选中 请将 p 标签背景更改为蓝色 我尝试使用 ng deep 覆盖 css 属性并将颜色更改为白色 尝试配置 invisibility hidden 但没有成功 另
  • 导航属性“SenderId”不是类型“Conversation”上声明的属性

    当我尝试更新数据库时 出现以下错误 导航属性 SenderId 不是类型 Conversation 上声明的属性 验证它是否未从模型中显式排除并且它是有效的导航属性 Edit 我认为问题在于对话和用户之间的映射关系 因为对话和用户以两个一对
  • DTLS 和 TLS 之间的区别

    TLS 和 DTLS 之间的功能区别是什么 使用 TLS 与 DTLS 时应用程序流程 协商有何不同 基本上 DTLS 是在数据报 UDP DCCP 等 上构建 TLS DTLS 有意与 TLS 类似 只不过 DTLS 必须解决两个问题 数
  • (异步)NSURLConnection:下面发生了什么?

    我知道它必须处理启动线程来发出网络请求的丑陋 然后可能调用performSelectorOnMainThread 用我的委托方法 我知道怎么做use在进行 iOS 编程时 它效果很好 但是 我想知道如何使其在 例如 命令行实用程序的上下文中
  • 在keycloak登录页面显示应用程序名称

    我有两个应用程序App1 and App2与相互作用keycloak用于用户身份验证 我想在以下位置显示应用程序名称keycloak登录页面 例如 如果用户正在登录App1 the keycloak登录页面应显示 登录到 App1 同样的情
  • 如何在 Travis 中显示 HTML 格式的输出文件?

    我正在尝试使用 Travis CI 在 Bintray 上部署 Android 库 但是当我上传我的仓库时 我得到了这个 Ran lint 变体发布 发现 6 个问题 Ran lint on variant debug 6 issues f
  • 存储轮播图像的最佳方式是什么?

    我正在使用 Ruby on Rails 我的目标网页上有两个轮播 我想知道存储和显示这些图像的最佳方式是什么 选项一 将图像放入assets images并在轮播中显示它们 如果这是一种好方法 我可以循环浏览文件夹中的图像还是必须指定每个文
  • 我可以在 WinRT 应用程序中使用 Sqlite (javascript) 吗?

    是否可以在 Windows 8 winRT javascript 应用程序中使用 Sqlite 数据库 我想要实现的是下载一个 Sqlite 数据库并在使用前将其存储在本地存储中 我相信某种形式的本地存储可用于基于 javascript 的
  • 从头开始创建 geom / stat

    我不久前刚刚开始使用 R 目前正在努力加强我的可视化技能 我想做的是创建箱线图平均钻石作为顶部的一层 参见下面链接中的图片 我还没有找到任何可以执行此操作的函数 所以我想我必须自己创建它 我希望做的是创建一个几何或统计数据 让这样的事情能够
  • Azure 服务总线重试策略不会改变行为

    我试图了解 Azure 服务总线上的重试策略 但它没有按我预期的方式工作 我有以下代码 它既侦听消息又将消息发送到特定的天蓝色队列 using System using Microsoft ServiceBus using Microsof
  • 如何更改 C# 中 UWP 应用中按钮的背景颜色?

    我有一个简单的 我需要每秒改变按钮的颜色 我用这个代码btnBlue Background new SolidColorBrush Windows UI Colors Blue 但它不包含我在 xaml 中使用的自定义颜色 例如 FF30B
  • 带参数“-S -save-temps”的 gcc 将中间文件放入当前目录中

    参数 S save temps工作正常 只要我不在同名文件上使用它们 考虑以下情况 我有一个项目 有一个主目录和一个名为subDir并且在这两个目录中都放置了名为file c 如果我现在打电话gcc S save temps file cp
  • 如何锁定 iPhone 某些视图控制器的方向 - Swift?

    我有 2 个视图控制器 VC1 和 VC2 VC1 目前以模态方式呈现 VC2 VC1 仅方向应为纵向 但 VC2 可以具有所有方向 问题是当我在 VC2 中并且我旋转到横向模式然后关闭时 VC1 也处于横向模式 这绝对不应该发生 NOTE
  • 单元测试实体框架验证

    我使用 IValidatableObject 为某些实体框架对象编写了一些自定义验证 并向对象添加了一些 DataAnnotations 以进行验证 我想测试验证是否满足所需的验证 确保自定义验证正常工作 并且所做的任何更改都保留这些数据注
  • Ansible:如何初始化 git bare 存储库并将其克隆到同一台机器?

    我想问一下 如何使用 Ansible 来实现这样的情况 我的主要目标是 nit git bare 存储库并将其克隆到同一台计算机 var www 我通常的步骤是 1 git init bare 在 git project name 中运行
  • 模板特化与别名模板推导区别

    我很难理解在以下情况下演绎是如何工作的 template
  • Laravel 通知 - 延迟电子邮件发送并在满足条件时取消

    我有一个应用程序 我在其中发送推送通知 如果用户登录到该应用程序 那就没问题 但是 如果他们没有登录 如果他们在 X 分钟内没有阅读通知 我想向他们发送一封电子邮件 我的方法是使用 Laravel 通知来创建邮件 广播和数据库通知 上toM
  • 构造函数可以中止实例化吗?

    我想在构造函数中进行测试 以确定当前使用给定参数实例化对象是否是一个好主意 但是我怎样才能中止构造函数并将警告返回到 new 语句呢 调用者必须在每个 新 语句之前完成此类测试吗 我认为构造函数将是一个好地方 您可以改用工厂对象 然后 这可
  • 设计可再确认的

    我想在我的用户模型中使用 devise 选项 reconfirmable 因此每当用户更改其电子邮件时 他需要通过电子邮件发送的链接进行确认 最大的问题是 电子邮件从未发送过 我的 devise 2 1 2 的设置是 用户模型 attr a