Kullanmak default_url_options
iç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_options
iç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_options
için tanımlanmış neyi kullanmak action_mailer
uygun ortam dosyası (içinde development.rb
, production.rb
vs.).
İşleri olabildiğince KURU tutmak için bunu config/environment.rb
dosyanı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_options
eş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 .