1.ตรวจสอบให้แน่ใจว่าคุณรวมยืนยันได้ในการโทร Model.devise
class User < ActiveRecord::Base
devise :database_authenticatable, :confirmable ...
end
2.ตรวจสอบว่าคุณเพิ่มยืนยันได้ในการย้ายผู้ใช้
create_table :users do |t|
t.database_authenticatable
t.confirmable
...
end
หากคุณใช้อุปกรณ์รุ่น 2.0+ สิ่งนี้จะล้มเหลวเนื่องจากอุปกรณ์ไม่ได้ให้ตัวช่วยในการย้ายข้อมูลอีกต่อไปและt.confirmable
ทำให้เกิดข้อผิดพลาด แต่คัดลอกบล็อกที่มีข้อความ "confirmable" จากคู่มือการอพยพย้ายถิ่นของพวกเขา
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
ที่คุณอาจใช้สิ่งที่คล้ายกับต่อไปนี้ (สมมติว่าคุณมีเซิร์ฟเวอร์ 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 gem ซึ่งคุณจะใช้เป็นเซิร์ฟเวอร์ SMTP ในการพัฒนาจับอีเมลขาเข้าทั้งหมดและแสดงบนhttp://localhost:1080/
:
gem install mailcatcher
เมื่อติดตั้งแล้วให้เริ่มเซิร์ฟเวอร์ mailcatcher ด้วยคำสั่ง:
mailcatcher
เซิร์ฟเวอร์ SMTP ของของเล่นจะทำงานบนพอร์ต 1025 เพื่อตรวจจับอีเมลและแยกออกจากพอร์ต HTTP 1080
ตอนนี้คุณสามารถสร้างบัญชีและดูการยืนยันได้