Я пишу простой веб-фреймворк с рубином. Я делаю свои шаблоны сКак я могу кэшировать шаблоны Haml внутри ruby
renderer = Haml::Engine.new(template_path, ...)
html_output = renderer.render(Object.new, params)
но это дает мне только последний отображаемый вывод html. Предположим, у меня есть вот так
-if title.include? 'Admin Page'
=title
-else
%a
Test
В каждом запросе он повторно отображает html-часть шаблона. Есть ли способ получить Cachable версию этого шаблона для производства, чтобы избавиться от повторной рендеринга. Кэшировать чистый html здесь недостаточно, потому что заголовок может меняться по запросу.
Во-первых, я думал, что это невозможно, потому что файл результата должен быть рубиновым и выглядеть следующим образом.
output = ''
if title.include? 'Admin Page'
output << title
else
output << '<a>Test</a>'
end
но после поиска я прочитал, что файлы Haml могут быть кэшированы, но я не могу понять, как этого добиться. Могу ли я кэшировать шаблоны Haml, если да, то как я могу это сделать? Является ли мой подход истинным в этой концепции или я что-то упускаю?
Просьба уточнить ваш вопрос с подробной информацией. Предоставьте пример шаблона Haml и два или три вызова его использования, а также какие части, которые вы надеетесь кэшировать, и которые должны быть пересчитаны. – Phrogz