文章内でリンクに置き換える必要がある一連の単語があります。アンカー リンクに単語が含まれていると、エラーが発生します。ループを使用してすべての単語をループ処理しているため、最初のリンクに置換対象の現在の単語が含まれている場合、既存のアンカー タグ内の新しいリンクに再度置き換えられます。
例:
私は次の文を持っています:速い茶色のキツネは怠惰な犬を飛び越えます。
<a href="#" data-content="A fox is not a dog">fox< /a>
「キツネ」と「犬」を次のように置き換えたい:<a href="#" data-content="A dog is a man's best friend">dog</a>
私のコード:
<% text = "The quick brown fox jumps over the lazy dog." %>
<% @definition.each do |d| % ><br/>
<% text = text.gsub(d.word, link_to(d.word, '# ', :class => "popover-definition", :rel => "popover", :title => "<strong>#{d.word}</strong>", :"data-content" => d.meaning)).html_safe %><br/>
<% end %>
**@definition
には、単語とそれを置き換えるリンクの両方が含まれています。
ループが 2 回目に実行されると、<a>
「fox」のタグの「dog」が新しいリンクに置き換えられます。単語がアンカーに含まれている場合、文字列の置換を回避するにはどうすればよいですか?
ありがとう!