使用设计跳过开发中的确认电子邮件

时间:2011-09-19 18:20:23

标签: ruby-on-rails ruby-on-rails-3 email devise

我正在使用设计,我希望能够在开发模式下跳过确认电子邮件。由于我的应用程序在本地计算机上运行时无法发送电子邮件,因此我将收到警告消息,说明在访问应用程序之前需要确认。

9 个答案:

答案 0 :(得分:28)

Devise还有一个方法skip_confirmation!,您可以在保存之前调用模型以避免发送邮件。它只是设置confirmed_at属性,导致跳过邮件发送。

答案 1 :(得分:23)

尝试来自Ryan Bates的Letter Opener宝石

https://github.com/ryanb/letter_opener

它将在浏览器中打开电子邮件而不发送它。如果你正处于开发过程中,你不想跳过东西,因为东西会被遗漏/遗忘。

答案 2 :(得分:13)

就这么简单

user=User.new
user.email="you@email.id"
user.password="yourPassword"
user.skip_confirmation!
user.save

答案 3 :(得分:6)

或者您可以在开发环境中尝试MailCatcher

答案 4 :(得分:3)

如果您想要一个非常轻量级的方法,请在注册后查看终端 - rails输出显示已发送的电子邮件,您可以复制粘贴确认链接,确认帐户然后继续测试。

粗糙但有效。

答案 5 :(得分:2)

在Rails 3中,您可以使用“拦截器”重新路由您的开发电子邮件,如Railscast 206中所述。

答案 6 :(得分:1)

Devise使用ActionMailer发送电子邮件。在测试模式下,ActionMailer实际上不应该发送任何电子邮件。

查看this tutorial以获取有关ActionMailer和测试环境的说明。

因此,根据环境的不同,您基本上可以关闭交付,同时不会影响您的实际测试。您只需在environments/test.rb文件中指定该选项。

答案 7 :(得分:1)

拿你的模型来设计。通常是它的user.rb.并删除或评论配置 comfirmable 。 这将阻止确认过程

答案 8 :(得分:0)

letter_opener宝石类似(上面由John Beynon推荐),有一个名为mailcatcher的宝石可以在SMTP级别上使用。

基本上,您在Rails应用程序上将SMTP配置为指向本地计算机上运行mailcatcher的端口,并且在其他端口上具有mailcatcher浏览器以读取电子邮件

更多信息https://github.com/sj26/mailcatcher