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