【问题标题】:How can I access Middleman template helpers when extending a class in config.rb?在 config.rb 中扩展类时如何访问 Middleman 模板助手?
【发布时间】:2013-07-29 10:05:27
【问题描述】:

这个config.rb 有效:

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

带模板index.html.erb:

<%= link_to_nothing "Test link" %>


但是当我尝试在这个config.rbMiddleman::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 处的 NoMethodError

#<:sitemap::resource:0x3139848> 的未定义方法 `link_to'

【问题讨论】:

    标签: ruby middleman


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-12
      • 1970-01-01
      • 1970-01-01
      • 2016-01-04
      • 2016-01-03
      相关资源
      最近更新 更多