Kullanmak default_url_optionsiçin ayarlayın action_mailer.default_url_options.
Ortam dosyalarınızın her birinde (ör development.rb. production.rb, Vb.) Aşağıdakiler default_url_optionsiçin kullanılacak seçenekleri belirleyebilirsiniz action_mailer:
config.action_mailer.default_url_options = { host: 'lvh.me', port: '3000' }
Ancak, bunlar aşağıdakiler için ayarlanmamıştır MyApp:Application.default_url_options:
$ MyApp::Application.config.action_mailer.default_url_options
#=> {:host=>"lvh.me", :port=>"3000"}
$ MyApp::Application.default_url_options
#=> {}
Bu yüzden bu hatayı dışarıdaki herhangi bir şeyde alıyorsunuz ActionMailer.
Eğer Başvuru olduğunu ayarlayabilirsiniz default_url_optionsiçin tanımlanmış neyi kullanmak action_maileruygun ortam dosyası (içinde development.rb, production.rbvs.).
İşleri olabildiğince KURU tutmak için bunu config/environment.rbdosyanızda yapın, böylece yalnızca bir kez yapmanız gerekir:
# 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
Şimdi uygulamanızı başlattığınızda, tüm Uygulamalarınız aşağıdakilerle default_url_optionseşleşecektir 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"}
Beni bu yolda ilerletmek için @pduersteler'e şapka ipucu .