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
, आदि)।
जितना हो सके DRY में चीजों को रखने के लिए, इसे अपनी 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"}
मुझे इस रास्ते पर ले जाने के लिए @pduersteler को हैट टिप ।