我有这个:
"<img src='#{picture.url(:tiny)}'>"
输出如下:
<img src='/system/pictures/2/tiny/Womacdsf.jpg?1294942797'>, <img src='/system/pictures/3/tiny/Womacdsf_3017.jpg?1294942797'>, <img src='/system/pictures/4/tiny/Womacdsf_8012.jpg?1294942797'>, … (8)
如您所见,这是使用<
和>
进行编码,而不是使用原始<
和>
。
我怎么能告诉Rails这不是我想要的?
答案 0 :(得分:4)
<%= image_tag picture.url(:tiny) %>
应该有效
对于您的问题,您也可以使用此
"<img src='#{picture.url(:tiny)}'>".html_safe
答案 1 :(得分:2)
如果您使用的是Rails 3,则默认情况下会启用XSS保护。这意味着默认情况下会转义HTML。
您可能曾经使用“h”帮助程序生成转义HTML,您不再需要,而是需要使用“原始”帮助程序来防止转义。
请参阅http://asciicasts.com/episodes/204-xss-protection-in-rails-3
答案 2 :(得分:2)
您有两种选择。打印时使用raw
取消转义字符串
<% image_string = "<img src='#{picture.url(:tiny)}'>" %>
<%= raw image_string %>
或者您可以将字符串标记为html_safe
<% image_string = "<img src='#{picture.url(:tiny)}'>".html_safe %>
<%= image_string %>