Я хочу, чтобы сообщения электронной почты, отправленные с помощью 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, должно делать только хорошо.