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"}
이 길로 나를 안내해 준 @pduersteler의 모자 팁 .