ตั้ง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เพื่อพาฉันไปสู่เส้นทางนี้