Error: uninitialized constant Guard::Haml::Engine

Error: uninitialized constant Guard::Haml::Engine

我正在使用 guardguard-haml 并尝试编写一个 RoR 类似 render 的函数,我可以在我的 haml 模板中使用它。

我的错误是Error: uninitialized constant Guard::Haml::Engine

我的 Guardfile 是:

# guard-haml: watch haml files in src/haml and compile to dist/
guard :haml, output: 'dist', input: 'src/haml', run_at_start: true, helper_modules: 'Helpers' do
    watch %r{^src/.+(\.html\.haml)}
end

# helpers
module ::Haml::Helpers
    def render(partial)
        Haml::Engine.new(File.read("./src/haml/_#{partial}.haml")).render
    end
end

我有部分 _head.haml 并且在我的 index.haml 我有:

=render :head
%body
    %h1 Hello, World!

不知道该怎么做。有人吗?

Haml::Engine 更改为 ::Haml::Engine#render 中的代码可能在 Guard 的命名空间中执行,并不断查找以搜索 Guard::Haml:Engine,而不是 Object::Haml::Engine.

More on constant lookup in ruby.