在config.rb中扩展类时,如何访问Middleman模板助手



config.rb工作:

helpers do
    def link_to_nothing(text)
        link_to(text, "#")
    end
end

使用模板index.html.erb:

<%= link_to_nothing "Test link" %>


但是当我尝试在这个config.rb:中向Middleman::Sitemap::Resource类添加一个方法时

helpers do
    class Middleman::Sitemap::Resource
        def link(text)
            link_to(text, path)
        end
    end
end

使用模板index.html.erb:

<%= current_page.link "This page" %>

加载页面时出现以下错误:

无方法错误,位于/index.html

#<的未定义方法"link_to";Middleman::站点地图::资源:0x3239848>

我发现link_to是类Middleman::Application的一个实例方法,我可以通过app变量访问它

helpers do
    class Middleman::Sitemap::Resource
       def link(text)
            app.link_to(text, path)
        end
    end
end

最新更新