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

时间:2013-07-29 14:45:27

标签: ruby middleman

config.rb有效:

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

使用模板index.html.erb

<%= link_to_nothing "Test link" %>


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

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

中的NoMethodError      

#&lt; Middleman :: Sitemap ::资源:0x3139848&gt;

的未定义方法`link_to'

1 个答案:

答案 0 :(得分:2)

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

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