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
возникает ошибка. Вместо этого скопируйте блок с пометкой «Подтверждаемый» из их руководства по миграции .
3. Сгенерируйте представления devise с помощью любой из следующих команд, чтобы вы могли переопределить представления рассылки devise:
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
вы можете использовать что-то вроде следующего (предположим, что у вас есть SMTP-сервер на localhost: 25):
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, который вы будете использовать в качестве SMTP-сервера в разработке, перехватывая все входящие письма и отображая их на http://localhost:1080/
:
gem install mailcatcher
После установки запустите сервер mailcatcher с помощью команды:
mailcatcher
Игрушечный SMTP-сервер будет работать на порту 1025, перехватывая электронные письма и отправляя их на HTTP-порт 1080.
Теперь вы можете создать учетную запись и увидеть подтверждения.