Я делал это раньше, просто для быстрого и грязного производителя шаблонов.Самый простой способ - просто визуализировать HAML внутри родительского объекта:
%p some haml that's interesting
= Haml::Engine.new('%p this is a test').render
%p some more template
Скорее всего, вы захотите создать несколько методов, чтобы упростить это - пару вспомогательных методов.Может быть, вы пишете файл с именем render_file, который принимает имя файла в качестве аргумента.Этот метод может выглядеть примерно так:
def render_file(filename)
contents = File.read(filename)
Haml::Engine.new(contents).render
end
Тогда ваш шаблон будет выглядеть примерно так:
%p some template
= render_file('some_filename.haml')
%p more template
Обратите внимание, что вам, вероятно, потребуется передать self в оригинальный Haml :: Engineсделать так, чтобы он знал, как найти ваш метод render_file.