【问题标题】:Rails: Adding an empty tag plus content to link_toRails:向link_to添加一个空标签和内容
【发布时间】:2012-08-31 21:06:26
【问题描述】:

我正在尝试使用 link_to 帮助器生成一个链接,该链接将输出以下 HTML:

<a href="some_url"><i class="some_class"></i>Link Name</a>

但是我用来尝试完成此操作的代码:

link_to(tag("i", class: options[:icon]) + title, url)

...正在输出:

<a href="some_url"><i class="some_class">Link Name</i></a>

为什么会这样,我该如何解决?谢谢。

编辑:
我相信我找到了问题所在。

&lt;i&gt; 标签在 HTML5 中不是自闭合标签。因此,i 之后的文本被视为该元素的内容。

【问题讨论】:

  • link_to((tag("i", class: options[:icon])+title), url),试试这个
  • @prem 我之前尝试过。结果相同。我不确定为什么 rails 将文本内容 inside 应该是一个空标签。

标签: html ruby-on-rails


【解决方案1】:

您是否尝试过使用 link_to 的块格式?

<%= link_to url do %>
  <%= tag("i", class: options[:icon]) %>
  Link Name
<% end %>

根据您的需要进行调整,也许您会得到您想要的。

【讨论】:

    【解决方案2】:

    这是我在我的应用程序中使用的图标标签助手,我经常将它作为第一个参数传递给 link_to,它既可用于单独创建图标标签,也可用于创建图标标签后跟文本。

      def icon_tag(icon, *args)
        options = args.extract_options!
        text = args.first || options.delete(:text)
        if text.nil?
          content_tag :i, "", class: ["icon", "icon-#{icon}"] + options[:class].to_a
        else
          "#{icon_tag icon} #{text}".html_safe
        end
      end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多