如何使用 SeedFu 跳过设计确认电子邮件 gem
How to Skip Devise Confirmation email using SeedFu gem
我正在使用 Seed-Fu gem 来填充我的数据库。所以,我的一个种子文件中有这个:
User.seed_once(:email) do |user|
user.id = 1
user.email = "test@test.com"
user.first_name = "First"
user.last_name = "Last"
user.confirmation_sent_at = Time.zone.now - 1.hour
user.confirmed_at = Time.zone.now
user.roles = [root,staff]
user.permissions = Permission.all
end
据我所知,应该 阻止 Devise 发送确认电子邮件。然而,它不是,所以(因为我使用的是 Letter Opener gem)我的浏览器被确认电子邮件淹没了。任何人都知道为什么会发生这种情况以及我如何说服 Devise 在我播种时不发送这些电子邮件?
解决方案:
根据下面另一个人的回答,我将 Devise::Mailer.perform_deliveries = false
添加到该夹具文件的顶部。然后,我找到了我的最终夹具文件并在其末尾添加了 Devise::Mailer.perform_deliveries = true
以确保在实际使用该应用程序时 会 发送电子邮件。非常感谢大家!
你可以。具体来说,您需要在某处设置此设置:
Devise::Mailer.delivery_method = :test
Devise::Mailer.perform_deliveries = false
例如,如果您使用 rspec 执行此操作,那么您可能会将其放入 spec/rails_helper.rb
。
你只需要在用户对象上调用确认方法。看下面的代码
user.confirm
因此在您的情况下,代码将类似于
User.seed_once(:email) do |user|
user.id = 1
user.email = "test@test.com"
user.first_name = "First"
user.last_name = "Last"
user.confirm
user.roles = [root,staff]
user.permissions = Permission.all
end
我正在使用 Seed-Fu gem 来填充我的数据库。所以,我的一个种子文件中有这个:
User.seed_once(:email) do |user|
user.id = 1
user.email = "test@test.com"
user.first_name = "First"
user.last_name = "Last"
user.confirmation_sent_at = Time.zone.now - 1.hour
user.confirmed_at = Time.zone.now
user.roles = [root,staff]
user.permissions = Permission.all
end
据我所知,应该 阻止 Devise 发送确认电子邮件。然而,它不是,所以(因为我使用的是 Letter Opener gem)我的浏览器被确认电子邮件淹没了。任何人都知道为什么会发生这种情况以及我如何说服 Devise 在我播种时不发送这些电子邮件?
解决方案:
根据下面另一个人的回答,我将 Devise::Mailer.perform_deliveries = false
添加到该夹具文件的顶部。然后,我找到了我的最终夹具文件并在其末尾添加了 Devise::Mailer.perform_deliveries = true
以确保在实际使用该应用程序时 会 发送电子邮件。非常感谢大家!
你可以
Devise::Mailer.delivery_method = :test
Devise::Mailer.perform_deliveries = false
例如,如果您使用 rspec 执行此操作,那么您可能会将其放入 spec/rails_helper.rb
。
你只需要在用户对象上调用确认方法。看下面的代码
user.confirm
因此在您的情况下,代码将类似于
User.seed_once(:email) do |user|
user.id = 1
user.email = "test@test.com"
user.first_name = "First"
user.last_name = "Last"
user.confirm
user.roles = [root,staff]
user.permissions = Permission.all
end