Hanami link_to helper只渲染最后一个元素

时间:2016-05-30 12:49:11

标签: ruby hanami

我是Hanami世界的新人。 我写了这段代码:

module Web::Views::Home
  class Index
    include Web::View
    include Hanami::Helpers::HtmlHelper

    def title
      html.header do
        h1 'Test search engine', id: 'title'
        hr
        div(id: 'test') do
          link_to('Home', "/", class: 'mnu_orizontal')
          link_to('About', "/", class: 'mnu_orizontal')
        end
      end
    end
  end
end

我在模板上调用title方法。 html结果是:

<header>
    <h1 id="title">Test search engine</h1>
    <hr>
    <div id="test">
        <a class="mnu_orizontal" href="/">About</a>
    </div>
</header>

为什么第二个链接会覆盖第一个链接?我的错误在哪里?

感谢您的回复。

3 个答案:

答案 0 :(得分:4)

当前版本hanami/helpers(v0.3.0)的expected behaviour

正如jodosha在上面提到的问题上写的那样:

  

在深入研究这个问题之后,这不是一个错误。   link_to与其他HTML构建器方法不同。这意味着你可以避免连接标签。

下一个版本(v0.4.0)将允许联合link_to,请参阅此PR

所以这不是你的错,但我认为documentation不同步,它已经显示new version

希望它有所帮助!再见。

答案 1 :(得分:4)

谢谢,我编辑了我的代码:

module Web::Views::Home
  class Index
    include Web::View
    include Hanami::Helpers::HtmlHelper

    def title
      html.header do
        h1 'Global search engine (GSearch)', id: 'title'
        hr
        div(id: 'test') do
          ul do
            li (link_to('Home', "/", class: 'mnu_orizontal'))
            li (link_to('About', "/", class: 'mnu_orizontal'))
          end
        end
      end
    end
  end
end

答案 2 :(得分:1)

现在,您可以将两个link_to#+连在一起。请参阅此示例:https://github.com/hanami/helpers/pull/52/files#diff-6a0d85bea58ea52c21a97cee6e67cad0R579