1. Upewnij się, że w wywołaniu Model.devise uwzględniono możliwość potwierdzenia
class User < ActiveRecord::Base
devise :database_authenticatable, :confirmable ...
end
2. Upewnij się, że dodano możliwość potwierdzenia do migracji użytkownika
create_table :users do |t|
t.database_authenticatable
t.confirmable
...
end
Jeśli używasz devise 2.0+, kończy się to niepowodzeniem, ponieważ devise nie zapewnia już pomocników migracji, a więc t.confirmable
powoduje błąd. Zamiast tego skopiuj blok z etykietą „Do potwierdzenia” z ich przewodnika po migracji .
3. Wygeneruj widoki devise za pomocą jednego z następujących poleceń, aby można było nadpisać widoki devise mailer:
rails generate devise:views # global
rails generate devise:views users # scoped
Możesz teraz przesłonić widoki mailera w devise/mailer/confirmation_instructions.html.erb
lub w users/mailer/confirmation_instructions.html.erb
zależności od konfiguracji
4. W przypadku środowiska programistycznego dodaj następujące wiersze konfiguracji/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. Dla środowiska produkcyjnego/config/environments/production.rb
możesz użyć czegoś podobnego do następującego (zakładając, że masz serwer SMTP na hoście lokalnym: 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 Aby przetestować konfigurację w fazie rozwoju, zainstaluj gem mailcatchera, którego będziesz używać jako serwera SMTP w trakcie tworzenia, przechwytujący wszystkie przychodzące wiadomości i wyświetlający je na http://localhost:1080/
:
gem install mailcatcher
Po zainstalowaniu uruchom serwer mailcatcher poleceniem:
mailcatcher
Zabawkowy serwer SMTP będzie działał na porcie 1025, przechwytując wiadomości e-mail i wyświetlając je na porcie HTTP 1080.
Możesz teraz założyć konto i zobaczyć potwierdzenia.
t.confirmable
powoduje błąd. Zamiast tego skopiuj blok oznaczony jako „Potwierdzalny” z ich przewodnika po migracji: github.com/plataformatec/devise/wiki/ ...Uważam, że powinieneś go jeszcze raz edytować ... port nr. powinno być w cudzysłowie .. W ten sposób: -
Miałem problem z railsami 3.2.0 / ruby 1.9.2
źródło
"1025"
jeśli używasz mailcatchera.Czy spojrzałeś na przewodnik po Railsach ActionMailer ?
źródło