我正在使用设计,我希望能够在开发模式下跳过确认电子邮件。由于我的应用程序在本地计算机上运行时无法发送电子邮件,因此我将收到警告消息,说明在访问应用程序之前需要确认。
答案 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浏览器以读取电子邮件