0

私は自分の application_helper で、次のような標準の link_to の定義を作成しました:

module ApplicationHelper
    def foo_link_to(text, path)
      out = "<span class=\"span\">"
      out += link_to text, path
      out += "</span>"
      out
    end
end

そして私の部分的に私は持っています

<%= foo_link_to 'text', home_path %>

しかし、これは私の出力です

&lt;span class=&quot;span&quot;&gt;&lt;a href=&quot;/home&quot;&gt;index&lt;/a&gt;&lt;/span&gt;

今、私の質問は: html_escape をどこに挿入する必要がありますか?
すべてを

ご支援ありがとうございます。今、私は別の問題を抱えています...私がしなければならないことを出力しない場合はどうすればよいですか?

<a href="home.html"><i class="iclass"></i><span class="span"> text </span></a>

を使用するraw outout.html_safe、出力は

a href="/home">/home</a>&lt;span class=&quot;span&quot;&gt;&lt;i class=&quot;iclass&quot;&gt;text&lt;/i&gt;&lt;/span&gt;
4

4 に答える 4

2

raw最後の行で , を使用します

raw out

そして、ヘルパーは次のようにさらにリファクタリングできます

def foo_link_to(text, path)
  content_tag :span do
    link_to text, path
  end
end

忘れましたが、後者の場合は必要ないようですraw

更新:最後のアイコンの場合、次のように出力できます

link_to 'home.html' do
  content_tag :i, class: 'iclass'
  content_tag :span, class: 'span' do
    'Text'
  end
end
于 2013-10-31T12:14:38.203 に答える
1

そうあるべきだと思う

module ApplicationHelper
  def foo_link_to(text, path)
    out = "<span class=\"span\">"
    out += link_to text, path
    out += "</span>"
    out.html_safe
  end
end
于 2013-10-31T12:15:12.230 に答える
0

最後の行に raw o html_safe を挿入する必要があると思います

于 2013-10-31T12:18:45.790 に答える
0

html_safeあなたを助けることができます:

使用するout.html_safe

あなたはこれを参照することができます

于 2013-10-31T12:18:58.203 に答える