Devise和ActionMailer混淆

时间:2011-06-06 04:17:31

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

我正在使用Devise进行身份验证,而我对如何设置邮件感到困惑。您是否仍在创建自己的邮件程序和初始化程序文件,还是应该通过Devise发送所有邮件?您在Devise的哪个位置创建电子邮件模板和发送电子邮件的方法?

我意识到这是一个广泛的问题,所以基本上我问的是用Devise设置邮件的最佳方法是什么?

此外,如果您想在确认收到电子邮件后向用户发送电子邮件,您会如何做?

2 个答案:

答案 0 :(得分:4)

Devise确实创建了自己的Mailer - 如果你看一下GitHub https://github.com/plataformatec/devise/blob/master/app/mailers/devise/mailer.rb,你会发现它已经包含了一堆已经打包的方法。

您可以使用命令

继续生成这些方法的视图
rails g devise views

然后编辑它们。

如果您想发送其他电子邮件,则应创建自己的邮件程序。我建议http://edgeguides.rubyonrails.org/action_mailer_basics.html。这是一个很好的概述如何从头开始设置邮件。

答案 1 :(得分:0)

Devise为您创建邮件和电子邮件模板,因此您不必担心。但是,如果要更改电子邮件模板,请使用以下命令安装设备视图:

rails g devise:views

这将在您的视图中添加一个新的“devise”文件夹。您可以在views / devise下的邮件文件夹中找到所有电子邮件模板。

使用确认属性在注册后向用户发送确认电子邮件。 默认情况下,此属性已注释掉。因此,一旦使用命令rails g devise:install安装devise,请转到db / migrate并找到devise_create_users迁移并取消注释以下行:

t.confirmable
add_index :users, :confirmation_token, :unique => true
完成后,迁移数据库。

现在转到您的用户模型并检查设计是否具有:确认属性,如果没有添加它,则您已全部设置。