Я использую внешний API для отправки электронной почты в Rails, поэтому мне нужно написать собственный код для отображения шаблонов в строку.
def html_for_template(template_name)
template_root = "app/views/emails"
template_path = "#{template_root}/#{template_name}"
haml = File.open(template_path).read
html = Haml::Engine.new(haml).render
content = ERB.new(html).result
end
Содержимое шаблона:
%html
%head
%meta{content: "text/html; charset=utf-8", "http-equiv" => "Content-Type"}
%link{"data-turbolinks-track" => "true", href: "styles.css", media: "all", rel: "stylesheet"}
Проблема в том, что результирующая строка на самом деле не разрешает содержимое файла styles.css, а просто копирует буквальную строку <link>...</link>
, что бесполезно, поскольку мне нужно фактическое содержимое CSS внутри результирующей строки.
Я также пытался:
:css
= MyApp::Application.assets["styles.css"].to_s.html_safe
Но это дает тот же результат: MyApp::Application.assets["styles.css"].to_s.html_safe
дословно скопировано и фактически не решено.ApplicationController.render(template_path)
также выдает точно такую же вещь.
Как отобразить шаблон в строку при разрешении содержимого таблицы стилей?