我在ruby和rails中输出有点问题。 我仍然是rails的初学者,所以它可能很容易解决,我只是看不到它。
我正在尝试解析一个网站并在我自己的网站上发布一些源代码。 问题:它总是将整个源代码作为文本输出,而不是解释html代码。我怎么能改变它?
代码:
page = Nokogiri::HTML(open("https://www.google.ch/search?client=ubuntu&channel=fs&q=google&ie=utf-8&oe=utf-8&redir_esc=&ei=WMpyUfSWEuz07AaTioCwDw"))
source = page.css('div#_css0')
<%= page %>
结果:
http://postimg.org/image/dsaib9lx3/
我希望它看起来像:
http://postimg.org/image/z9qlhoef5/
感谢您的任何建议!
答案 0 :(得分:3)
您应该在erb中使用raw
。它实际上相当于在它上面调用html_safe,但是,就像h一样,它是在一个帮助器上声明的,所以它只能用在控制器和视图上。
page = Nokogiri::HTML(open("https://www.google.ch"))
<%= raw page %>
或
<%= raw Nokogiri::HTML(open("http://www.google.com")) %>
答案 1 :(得分:2)
在Rails视图中,每个字符串内容都会被转义,除非您使用html_safe
(docs)