为什么我的函数(在我的模型中)输出纯文本到我的视图?

时间:2014-03-24 04:57:54

标签: ruby-on-rails

我是一个红宝石新手。

我目前正在我的模型中编写一个函数,从我的视图中调用。我们的目标是输出一些带有几个传统换行符的简单文本,这样......实际上会破坏网页上的一行。

仅...当我实际调用该函数时,实际上标签被写为纯文本而不是换行符。我做错了什么?

在我的模型中:

   def myfunction
    return "Top line: <br />second line <br />"
   end

在我看来:

<%= @myData.myFunction %>

我做错了什么?

2 个答案:

答案 0 :(得分:1)

啊得到了它。

问题是返回的文本自然会被ruby on rails转义。

所以解决方法是在我返回的字符串末尾添加.html_safe

<%= @myData.myFunction.html_safe %>

答案 1 :(得分:1)

默认情况下,Rails会自动转义所有输出 - 这对防止cross-site scripting攻击等事情大有帮助。

如果您知道您要输出的代码是安全的,您可以在其上调用html_safe,即。 @myData.myFunction.html_safe

在理想的世界中,你的模型无论如何都不会输出HTML。