我是一个红宝石新手。
我目前正在我的模型中编写一个函数,从我的视图中调用。我们的目标是输出一些带有几个传统换行符的简单文本,这样......实际上会破坏网页上的一行。
仅...当我实际调用该函数时,实际上标签被写为纯文本而不是换行符。我做错了什么?
在我的模型中:
def myfunction
return "Top line: <br />second line <br />"
end
在我看来:
<%= @myData.myFunction %>
我做错了什么?
答案 0 :(得分:1)
啊得到了它。
问题是返回的文本自然会被ruby on rails转义。
所以解决方法是在我返回的字符串末尾添加.html_safe
。
<%= @myData.myFunction.html_safe %>
答案 1 :(得分:1)
默认情况下,Rails会自动转义所有输出 - 这对防止cross-site scripting攻击等事情大有帮助。
如果您知道您要输出的代码是安全的,您可以在其上调用html_safe
,即。 @myData.myFunction.html_safe
。
在理想的世界中,你的模型无论如何都不会输出HTML。