Rails 3中字符串内部的link_to

3
每次我尝试将一个字符串与link_to结合起来时,它都以转义的HTML形式输出到我的浏览器中。 例如:
%(TEST #{link_to(object.title, object)})

OUTPUTS

TEST <a href="/objects/3">TEST OBJECT</a> 

为什么会发生这种情况?我在网络上看到的每个例子中,link_to 都没有被转义。

请问您能否提供您本来希望得到的输出结果? - Phrogz
@Phrogz 他期望看到一个链接,但实际上在浏览器中他只是看到了 HTML。 - Mischa
2个回答

12

在 Rails 3 中,默认情况下会对输出进行转义。如果您将 .html_safe 添加到字符串末尾,它将按照您所期望的进行输出。

%(TEST #{link_to(object.title, object)}).html_safe

2
我不认为这是一个原则上好的想法 - 它忽略了Rails 3中这种变化的根本原因。如果用户提供了object.title,您应该首先对其进行清理,然后再执行此操作。 - gorn

4
这也可以完成工作:
<%=raw %(TEST #{link_to(object.title, object)}) %>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接