Как получить полный URL-адрес изображения в асинхронной программе Rails?
Я хочу, чтобы электронные письма, которые я отправлял с помощью ActionMailer, содержали изображения, которые ссылаются на мое приложение. В моей среде разработки, например:
<img src="http://myfullappurl.dev/assets/myimage.png">
У меня есть это в моей разработке.rb
config.action_controller.asset_host = 'myfullappurl.dev'
config.action_mailer.asset_host = config.action_controller.asset_host
config.action_mailer.default_url_options = { host: 'myfullappurl.dev', only_path: false }
Но я не могу заставить свои почтовые шаблоны отображать полный URL любым из следующих способов:
asset_path('myimage.png')
asset_path('myimage.png', only_path: false)
image_url('myimage.png')
Ответы на многие похожие вопросы по этой теме выполняются примерно так:
"#{request.protocol}#{request.host_with_port}#{asset_path('image.png')}"
Но так как мои письма отправляются асинхронно с Sidekiq, нетrequest
объект, как было бы, если бы они были отправлены синхронно в контроллере.
Есть ли очевидная вещь, по которой я скучаю, или я должен бороться с Rails, чтобы сделать это? Я использую Rails 4, но я уверен, что все, что работает в 3.1 / 3.2, должно работать нормально.