ตั้งdefault_url_optionsให้ใช้ของคุณaction_mailer.default_url_optionsการใช้งานของคุณ
ในแต่ละไฟล์สภาพแวดล้อมของคุณ (เช่นdevelopment.rb, production.rbฯลฯ ) คุณสามารถระบุdefault_url_optionsจะใช้สำหรับaction_mailer:
config.action_mailer.default_url_options = { host: 'lvh.me', port: '3000' }
อย่างไรก็ตามสิ่งเหล่านี้ไม่ได้ถูกตั้งค่าสำหรับMyApp:Application.default_url_options:
$ MyApp::Application.config.action_mailer.default_url_options
#=> {:host=>"lvh.me", :port=>"3000"}
$ MyApp::Application.default_url_options
#=> {}
นั่นเป็นสาเหตุที่คุณได้รับข้อผิดพลาดนั้นจากสิ่งอื่นนอกเหนือจากนั้น ActionMailerนั้น
คุณสามารถตั้งค่าโปรแกรมประยุกต์ของคุณdefault_url_optionsที่จะใช้สิ่งที่คุณกำหนดไว้สำหรับaction_mailerในแฟ้มสภาพแวดล้อมที่เหมาะสม ( development.rb, production.rbฯลฯ )
หากต้องการเก็บสิ่งที่แห้งที่สุดให้ทำในconfig/environment.rbไฟล์ของคุณดังนั้นคุณจะต้องทำสิ่งนี้เพียงครั้งเดียว:
# Initialize the rails application
MyApp::Application.initialize!
# Set the default host and port to be the same as Action Mailer.
MyApp::Application.default_url_options = MyApp::Application.config.action_mailer.default_url_options
ตอนนี้เมื่อคุณบู๊ตแอปพลิเคชันของคุณทั้งหมดdefault_url_optionsจะตรงกับของคุณaction_mailer.default_url_options:
$ MyApp::Application.config.action_mailer.default_url_options
#=> {:host=>"lvh.me", :port=>"3000"}
$ MyApp::Application.default_url_options
#=> {:host=>"lvh.me", :port=>"3000"}
เปลี่ยน Hat เป็น@pduerstelerเพื่อพาฉันไปสู่เส้นทางนี้