1.确保在 Model.devise 调用中包含可确认的内容
class User < ActiveRecord::Base
devise :database_authenticatable, :confirmable ...
end
2.确保将可确认添加到用户迁移
create_table :users do |t|
t.database_authenticatable
t.confirmable
...
end
如果您使用的是 devise 2.0+,则会失败,因为 devise 不再提供迁移帮助程序,因此t.confirmable 会引发错误。而是从their migration guide 复制标有“可确认”的块。
3. 使用以下任一命令生成设计视图,以便您可以覆盖设计邮件视图:
rails generate devise:views # global
rails generate devise:views users # scoped
您现在可以根据您的设置覆盖devise/mailer/confirmation_instructions.html.erb 或users/mailer/confirmation_instructions.html.erb 中的邮件视图
4.对于开发环境,在/config/environments/development.rb
中添加以下配置行
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {:address => "localhost", :port => 1025}
5. 对于/config/environments/production.rb 中的生产环境,您可以使用类似于以下内容的内容(假设您在 localhost:25 上有一个 SMTP 服务器):
config.action_mailer.default_url_options = {:host => 'yourdomain.com'}
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "127.0.0.1",
:port => 25,
:domain => 'yourdomain.com'
}
6 要在开发中测试设置,请安装 mailcatcher gem,您将在开发中用作 SMTP 服务器,捕获所有传入邮件并将它们显示在http://localhost:1080/:
gem install mailcatcher
安装后使用以下命令启动 mailcatcher 服务器:
mailcatcher
一个玩具 SMTP 服务器将在端口 1025 上运行,捕获电子邮件并将它们显示在 HTTP 端口 1080 上。
您现在可以创建一个帐户并查看确认信息。