3

次の HTML を出力する link_to ヘルパーを使用してリンクを生成しようとしています。

<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>

なぜこれを行うのですか?どうすれば修正できますか? ありがとう。

編集:
私は問題を見つけたと思います。

<i>タグは、HTML5 の自己終了タグではありません。したがって、 の後のテキストiは、その要素のコンテンツとして扱われます。

4

2 に答える 2

5

link_to のブロック形式を使用してみましたか?

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

それをニーズに合わせて微調整すると、探しているものが得られるかもしれません。

于 2012-08-31T21:39:15.223 に答える
1

これは、アプリケーションで使用するアイコン タグ ヘルパーであり、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
于 2012-08-31T21:34:32.733 に答える