Я хочу, чтобы электронные письма, которые я отправляю с помощью ActionMailer, содержали изображения, ссылающиеся на мое приложение. В моей среде разработки, например:
<img src="http://myfullappurl.dev/assets/myimage.png">
У меня есть это в моем development.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, должно работать нормально.