如何使用 Devise 设置电子邮件确认?

2023-12-15

是否有教程解释如何从头开始设置 Devise 的注册确认电子邮件(在开发和生产中),即如果您没有设置 Action Mailer?

谷歌搜索刚刚出现了一堆与此相关的单独片段。没有一篇文章能够解释得足够多,而且我不确定它们如何组合在一起。是否有分步说明,或者甚至可以解释初始步骤?


终于成功了。遵循下面接受的答案中的所有步骤,然后将以下内容添加到我的environment.rb文件中:

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
   :tls => true,
   :address => "smtp.gmail.com",
   :port => 587,
   :domain => "gmail.com",
   :authentication => :login,
   :user_name => "[username]",
   :password => "[password]"
 }

1.确保在 Model.devise 调用中包含可确认的内容

class User < ActiveRecord::Base
  devise :database_authenticatable, :confirmable ...
end

2.确保将可确认添加到用户迁移中

create_table :users do |t|
  t.database_authenticatable
  t.confirmable
  ...
end

如果您使用 devise 2.0+,则会失败,因为 devise 不再提供迁移帮助程序,所以t.confirmable引发错误。相反,复制标有“可确认”的块他们的移民指南.

3.使用以下任一命令生成设计视图,以便您可以覆盖设计邮件程序视图:

rails generate devise:views # global
rails generate devise:views users # scoped

您现在可以覆盖邮件程序视图devise/mailer/confirmation_instructions.html.erb or users/mailer/confirmation_instructions.html.erb取决于您的设置

4. For 发展环境中添加以下配置行/config/environments/development.rb

config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {:address => "localhost", :port => 1025}

5. For 生产环境在/config/environments/production.rb您可以使用类似于以下内容的内容(假设您在 localhost:25 上有一个 SMTP 服务器):

config.action_mailer.default_url_options = {:host => 'yourdomain.com'}
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  :address => "127.0.0.1",
  :port    => 25,
  :domain  => 'yourdomain.com'
}

6要测试开发中的设置,请安装 mailcatcher gem,您将在开发中将其用作 SMTP 服务器,捕获所有传入邮件并将其显示在http://localhost:1080/:

gem install mailcatcher

安装后,使用以下命令启动 mailcatcher 服务器:

mailcatcher

玩具 SMTP 服务器将在端口 1025 上运行,捕获电子邮件并将其显示在 HTTP 端口 1080 上。

您现在可以创建帐户并查看确认信息。

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

如何使用 Devise 设置电子邮件确认? 的相关文章

  • 回形针:样式取决于模型(has_many 多态图像)

    我已将模型设置为使用多态图像模型 这工作正常 但是我想知道是否可以更改每个模型的 styles 设置 找到了一些使用 STI 模型 Art has many images as gt imageable Image belongs to i
  • Ruby on Rails Webpacker 找不到 asset_pack_path 下的图像

    我在使用 Ruby on Rails Webpacker 在视图中包含图像时遇到问题 当我尝试使用 html img 标签和 asset pack path 在我的视图中插入图像时 出现错误 我的图像位于app javascript ima
  • 如何在 Rails 上的 .yml 本地化文件中换行?

    我有一个带有一些本地化内容的 terms en yml 文件 例如 en devise registrations terms text This agreement was written in English US To the ext
  • 默认:Rails 资源路由的排除选项

    一个小问题 我正在将 Rails 用于 REST API 但由于它是 RESTful API 所以我并不真正需要 new or edit我的任何资源的路由 因为人们只会完全通过自动 JSON 请求而不是图形方式与此 API 交互 例如 不需
  • 使用设计宝石导轨注销用户

    在管理部分 我显示当前登录用户的列表 现在管理员可以选择一个或多个用户并销毁他们的会话 注销他们 我不知道从哪里开始 请帮助我 您可以使用sign out通过传入用户对象在控制器操作中的方法 Make sure only admins ca
  • 使用 Mechanize (Ruby) 进行基本身份验证和表单身份验证

    我正在尝试登录公司内部网上的一个站点 该站点具有基本身份验证弹出对话框和基于表单的身份验证 这是我正在使用的代码 导致 401 gt Net HTTPUnauthorized 错误 require rubygems require mech
  • RailsAdmin 中具有 join_table 和 has_many :through 的模型的路由错误

    所以我有3个模型 category product category products 这是我的category rb attr accessible name has many category products do def with
  • 有没有办法避免自动更新 Rails 时间戳字段?

    如果您有数据库列created at and updated at当您创建和更新模型对象时 Rails 将自动设置这些值 有没有办法在不接触这些列的情况下保存模型 我正在引入一些旧数据 我想根据 不同名称的 旧数据字段中的相应值设置这些值
  • 将控制器操作处理为 JS 而不是 HTML

    所以我有以下形式 Follow 我试图
  • Rails 3 best_in_place 编辑在不刷新页面的情况下无法工作

    我从Bernat的博客rails迷你教程中获取了评论代码 我尝试使用他的 best in place gem 添加就地编辑功能 在大多数情况下它工作正常 我的代码部署在http falling spring 3964 herokuapp c
  • 黄瓜与 RSpec

    我想开始深入研究 BDD 我以前从未使用过 TDD 现在 不确定我是否应该从学习 RSpec 开始 然后跳到 Cucumber 或者直接使用 Cucumber 我一直在互联网上阅读有关两者的内容 在我看来 Cucumber 可能是 RSpe
  • ubuntu 12.04 ruby​​ 2.0 Rails:找不到“thread_safe”

    我正在 ubuntu 12 04 上安装 Rails 使用以下方法手动安装 如何在 Ubuntu 12 04 上正确安装 ruby 2 0 0 https stackoverflow com questions 16222738 how t
  • Rails 如何使用 send_data 导出数据,然后重定向到新页面?

    我有一个 Rails 应用程序 允许用户下载生成的 CSV 文件 下载文件后 我想将用户重定向到新的 URL 或操作 有没有在 send data 之后进行重定向的技巧 我想做这样的事情 这不起作用 send data output typ
  • 如何检查字符串是否为有效日期

    我有一个字符串 31 02 2010 并想检查它是否是有效日期 最好的方法是什么 我需要一个方法 如果字符串是有效日期 则返回 true 如果不是 则返回 false require date begin Date parse 31 02
  • 如何使用sunspot_rails gem 搜索相关文章

    我有一个迷你博客应用程序 我希望用户查看与他们在文章显示页面中阅读的内容相关的文章 没有 sunspot rails gem 我会做这样的事情 在我的模型中 def self related search query join AND fi
  • Rails 3.2 防止使用错误保存对象

    我有一个 ActiveRecord 对象 我想阻止它被保存 而不对模型进行永久验证 你曾经可以使用做这样的事情errors add但它看起来不再有效了 user User last user errors add name name doe
  • 强参数和多维数组

    我在用着轨道 3 2 6 with 参数强 https github com rails strong parameters gem 所以 我有一个具有典型更新操作的控制器 PUT api resources id def update r
  • 如何让 Redis 在 Heroku 上启动?

    我已经添加了RedistogoHeroku 上的 nano 插件 我已经在控制台中成功测试了它 但是 当我的应用程序尝试连接 Redis 时 出现以下错误 Heroku 日志文件 2011 10 12T08 19 50 00 00 app
  • Rails 中过滤长日志参数

    我允许用户在我的网站上上传文件 其中一些文件可能非常大 并且占用了我的日志文件的很大一部分 所以我不想让它出现 我知道 config filter parameters password 过滤某些参数 但问题是参数位于这样的哈希中 pers
  • Rails RESTful 资源对包含分隔符的字段使用 to_param

    我希望我的 Rails 2 3 2 应用程序能够响应并生成 URL 如下所示 websites asd com websites asd com dns records new 在我的 config routes rb 中 我有 map r

随机推荐

  • Firestore - 使用数组添加对象

    一整天都在这里用这个东西自杀 我正在上两门课 系和文章 export class Department articals Artical moms number id string constructor and export class
  • 如何使用 jQuery 获取、操作和替换文本节点?

    这是我的代码 li class det price a href designer customize 278258 dpid 1 Printing a from 10 li 我在任何给定页面上都有大约十五个这样的块 我想获取文本节点 来自
  • 从 ANT 启动 Eclipse 运行配置

    我正在将 Orion 服务器用于基于 Java 的 Web 应用程序 我有一个运行配置 可以使用正确的类路径和所有必要的配置启动 Orion 我还有几个 ANT 脚本用于将文件复制到构建路径 我想创建一个 ANT 脚本来关闭 Orion 复
  • 如何用Python从LDA模型生成词云?

    我正在对报纸文章进行一些主题建模 并使用 Python3 中的 gensim 实现了 LDA 现在我想为每个主题创建一个词云 使用每个主题的前 20 个单词 我知道我可以打印单词 并保存 LDA 模型 但是有没有办法只保存每个主题的顶部单词
  • 用C解析和读取数据帧?

    我正在编写一个从Linux上的串口读取数据的程序 数据由另一台设备发送 帧格式如下 start Command Data CRC End 0x02 0x41 0 127 octets 0x03 数据字段包含 127 个八位位组 如图所示 八
  • 为每个单选按钮分配 2 个值

    我试图为每个单选按钮分配 2 个值 以在 2 个字段中输出 但这不起作用 这是我使用的代码 p What s your favorite browser p
  • 我是否误解了heredoc应该做什么?

    我对 PHP 很陌生 所以我知道我在这里遗漏了一些明显的东西 我认为heredoc函数应该保留格式 换行符等 但每当我测试它时 它解析时都没有格式化 我尝试了很多不同的脚本 包括来自 PHP net 和 W3schools 等来源的复制粘贴
  • Excel VBA 在函数中合并单元格

    我编写了一个粗略的函数来根据范围选择和连接单元格 Function GetSkills CellRef As String CellRefEnd As String Delimiter As String Dim CellStart As
  • 非整数的错误“整数输入语法无效”?

    我正在使用 Python 和 psycopg2 我正在尝试执行带有值列表的准备好的语句 如下所示 cur callproc prepared func prepared values psycopg2 DataError invalid i
  • 无法在 xcode 4.2 上构建我的项目

    我已将我的 xcode 升级到 4 2 使用雪豹 以前我使用的是 Xcode 3 2 6 我的项目使用它成功构建 现在我无法构建它 而是 Xcode 发出以下错误 ld warning option A is obsolete and be
  • 将生成的 img 嵌入 django 模板中

    我如何将生成的图像嵌入 django 模板中 就像是 return render to response graph html img get graph 我不想要这个 因为它只是发送图像 http HttpResponse get gra
  • FFmpeg从mp4创建m3u8,视频文件大小

    我正在使用 ffmpeg 将 mp4 转换为 m3u8 但首先我需要让 mp4 变小 我使用这段代码来缩小它 ffmpeg i big mp4 b 1000000 small mp4 然后我使用这段代码将其转换为m3u8 ffmpeg i
  • Vue 3 自定义复选框组件,带有 v-model 和项目数组

    迫切需要你们的帮助 所以基本上我有一个带有 v 模型的自定义复选框组件 我在组件上使用 v for 循环来显示带有数组中名称的复选框 在父组件中 我有两列 可用 和 选定 这个想法是 如果我选中其中一个框可用栏它应该出现在选定的列 问题是它
  • 设置 win32 控制台应用程序的库路径

    当我尝试执行简单的 HelloWorld win32 控制台应用程序时 出现 找不到 dll 重新启动应用程序可能会解决问题 错误 我知道 dll 的位置 从命令提示符执行 exe 时如何指定其位置 PS 将 dll复制到 exe的当前目录
  • Doctrine2:这些实体之间的关联有什么问题?

    我正在尝试通过简单的示例来了解 Doctrine2 中的所有更改 请查看以下实体片段 VCat php namespace Application Models Entity Table name v cat class VCat Id C
  • UITableViewCell 中加载 UIView 的 Nib 文件不会拉伸

    我有一个 UIView 可以通过 nib xib 文件重用 我想加载它并填充一个 UITableViewCell 它将在自动调整大小的 UITableView 中使用 全部带有自动布局 大多数工作都很好 但似乎加载的 UIView 使用周围
  • 如何升级Oracle 11g 11.2.0.1中的java版本[关闭]

    Closed 这个问题是无关 目前不接受答案 我的oracle数据库的java版本是1 5 0 10 如何将其升级到java 1 7 0 10 Thanks 这是不可能的 Oracle 为特定版本的 DBMS 提供了特定版本的 Java 并
  • Javascript cloneNode 不是一个函数[重复]

    这个问题在这里已经有答案了 我有几个跨度 span a span span b span span c span span d span I use getElementsByName获取跨度集合 var spans document ge
  • 修复 RegEx 中的 JSLint 擒纵机构不良警告

    我在名为的第三方 jQuery 控件中有以下代码jquery facebox js that JSLint不喜欢 这是正则表达式中的一个严重的擒纵错误 正则表达式对我来说就像 Romulan 所以我不知道如何修复错误 这是正则表达式中的句点
  • 如何使用 Devise 设置电子邮件确认?

    是否有教程解释如何从头开始设置 Devise 的注册确认电子邮件 在开发和生产中 即如果您没有设置 Action Mailer 谷歌搜索刚刚出现了一堆与此相关的单独片段 没有一篇文章能够解释得足够多 而且我不确定它们如何组合在一起 是否有分