1. Pastikan Anda memasukkan konfirmasi dalam panggilan Model.devise
class User < ActiveRecord::Base
devise :database_authenticatable, :confirmable ...
end
2. Pastikan Anda menambahkan konfirmasi untuk migrasi pengguna
create_table :users do |t|
t.database_authenticatable
t.confirmable
...
end
Jika Anda menggunakan alat 2.0+ ini gagal karena alat tidak lagi menyediakan bantuan migrasi, dan karenanya t.confirmable
menimbulkan kesalahan. Sebaliknya, salin blok berlabel "Dapat Dikonfirmasi" dari panduan migrasi mereka .
3. Hasilkan tampilan merancang, dengan salah satu dari perintah berikut, sehingga Anda dapat menimpa tampilan mailer merancang:
rails generate devise:views # global
rails generate devise:views users # scoped
Anda sekarang dapat mengesampingkan tampilan mailer di devise/mailer/confirmation_instructions.html.erb
atau users/mailer/confirmation_instructions.html.erb
tergantung pada pengaturan Anda
4. Untuk lingkungan pengembangan tambahkan baris konfigurasi berikut di/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. Untuk lingkungan produksi di /config/environments/production.rb
Anda dapat menggunakan sesuatu yang mirip dengan berikut (seandainya Anda memiliki server SMTP di 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 Untuk menguji pengaturan dalam pengembangan, instal gem mailcatcher, yang akan Anda gunakan sebagai server SMTP dalam pengembangan, tangkap semua email masuk dan tampilkan di http://localhost:1080/
:
gem install mailcatcher
Setelah diinstal mulai server mailcatcher dengan perintah:
mailcatcher
Server SMTP mainan akan berjalan pada port 1025 menangkap email dan memindahkannya pada port HTTP 1080.
Anda sekarang dapat membuat akun dan melihat konfirmasi.
t.confirmable
menimbulkan kesalahan. Alih-alih, salin blok berlabel "Dapat DikonfirmasiSaya yakin Anda harus mengeditnya sekali lagi ... no port. harus dalam tanda kutip .. Seperti ini: -
Saya menghadapi masalah di rel 3.2.0 / ruby 1.9.2
sumber
"1025"
jika menggunakan mailcatcher.Sudahkah Anda melihat Panduan Rails ActionMailer ?
sumber