Ruby on rails 创建用户时,如何阻止Desive发送邮件?

Ruby on rails 创建用户时,如何阻止Desive发送邮件?,ruby-on-rails,ruby,devise,Ruby On Rails,Ruby,Devise,我有一个创建用户的自定义控制器,如下所示: User.create! :blah => "whatever" 我的问题是,它会生成一封电子邮件,就像有人订阅时一样,我需要生成一封包含更多信息的自定义电子邮件。有没有办法使Deave不生成该电子邮件?我认为Deave在创建新用户时不会发送电子邮件,除非您的用户模型中设置了可确认的设置,所以我假设您正在谈论确认电子邮件 我不知道有什么简单的方法可以关闭此电子邮件,但您可以修改发送的电子邮件的正文。您只需创建文件的自定义版本,使其包含所需的信息

我有一个创建用户的自定义控制器,如下所示:

User.create! :blah => "whatever"

我的问题是,它会生成一封电子邮件,就像有人订阅时一样,我需要生成一封包含更多信息的自定义电子邮件。有没有办法使Deave不生成该电子邮件?

我认为Deave在创建新用户时不会发送电子邮件,除非您的用户模型中设置了可确认的设置,所以我假设您正在谈论确认电子邮件

我不知道有什么简单的方法可以关闭此电子邮件,但您可以修改发送的电子邮件的正文。您只需创建文件的自定义版本,使其包含所需的信息


另一种方法是通过将config.mailer设置为自定义邮件程序,覆盖designe使用的文件,并在initializers/designe.rb中设置您自己的自定义文件。然后在您的自定义邮件程序中,您可以覆盖方法
确认\u说明(记录)
,以便它发送您的新电子邮件。

我仍然需要生成令牌,因此我的代码最终看起来是这样的。这是一个快速而肮脏的解决方案,可以做很多改进,但至少它展示了如何做到这一点的基础:

user.confirmed_at = Time.now
user.save!
user.confirmed_at = nil
user.send(:generate_confirmation_token)
user.save!

您也可以使用
new
而不是
create
,并在
保存之前调用
跳过确认

user = User.new :blah => "whatever"
user.skip_confirmation!
user.save

skip\u confirmation
方法将
confirmation\u设置为
日期,这将阻止确认邮件的发送。

正是我想要的。感觉像是“Desive打算让你这么做的方式”,而不是“又快又脏”的认可答案。谢谢,先生。此解决方案还确认了用户,这可能不是您想要的。