rails 3:如何返回填充了html标签的数组的原始内容

Mar*_*kus 4 arrays upgrade ruby-on-rails-3

自从升级到rails 3以来,我遇到了一个新问题,即从具有不同html标签的数组中显示html.

到目前为止,我只能编写method_name,返回一个不同的html标签数组.(即使它们是用字符串完成的......)

现在,数组显示为数组:

["<br/></br/>", "<b><a href=\"/...">...</a></b>,"<br/></br/>"]
Run Code Online (Sandbox Code Playgroud)

如何将其输出为html标签?我试图在每个数组条目的末尾运行to_html,但这给了mi错误:

undefined method `to_html' for "<br/></br/>":ActiveSupport::SafeBuffer
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决这一问题?

谢谢马库斯

更新:感谢nimblegorilla的答案,输出现在看起来像:

["
", "...","
"]
Run Code Online (Sandbox Code Playgroud)

这是更好的,因为html被删除,但元素仍然显示为数组...

nim*_*lla 5

我认为你正在寻找'原始'方法:

<% array = ["<br/>Hello World</br/>", "<b><a href=\"/...\">...</a></b>" , "<br/><b>Yo</b></br/>"] %>

<%= raw array %>
Run Code Online (Sandbox Code Playgroud)

这样可以确保您打算将html显示为实际的html,而不是来自可能是XSS尝试的用户的不可信输入.

这个railscast更多地讨论了它:http://railscasts.com/episodes/204-xss-protection-in-rails-3