Rails:link_to不会在其中生成2个content_tag

时间:2015-02-17 08:55:21

标签: ruby-on-rails

我希望在视图中生成此内容

    <li>
      <%= link_to pop_path do  %>
        <span class="glyphicon glyphicon-signal"></span>
        Trending
      <% end %>
    </li>

所以我做了一个帮手

def nav_link2(link_text, link_path)
  content_tag(:li, class: 'active') do
    link_to link_path do
      content_tag(:span, nil, class: "glyphicon glyphicon-star")
      content_tag(:span, link_text)
    end
  end
end

但是,它只能生成1 span,问题是什么?

1 个答案:

答案 0 :(得分:2)

您必须连接content_tags块中的两个link_to,因为只返回块中的最后一行并打印出来。

加入content_tag生成的两个字符串并使用html_safe,以便正确呈现:

link_to link_path do
  content_tag(:span, nil, class: "glyphicon glyphicon-star") +
    content_tag(:span, link_text)
end.html_safe