Ruby on rails Rails 3.1 HAML在一个“:escaped”块上转义太多,如何控制它,使它只转义符号?

Ruby on rails Rails 3.1 HAML在一个“:escaped”块上转义太多,如何控制它,使它只转义符号?,ruby-on-rails,ruby,ruby-on-rails-3,haml,Ruby On Rails,Ruby,Ruby On Rails 3,Haml,我有一段由Witia提供的代码,可以将视频嵌入到页面中。该源代码是可嵌入的原始html,其中直接包含一些符号。当然,我的w3c验证程序整天都在对我大喊大叫,有了这些,我会收到数百个错误,比如: &未启动字符引用。(&可能应该作为&;转义) 我的观点是在HAML中,所以我假设我需要逃离这个序列,我很高兴地做到了: :escape <object width="... :转义 您可能希望将HTML放入它自己的部分,然后将其呈现为字符串并对其执行string\gsub 将您的Witi

我有一段由Witia提供的代码,可以将视频嵌入到页面中。该源代码是可嵌入的原始html,其中直接包含一些符号。当然,我的w3c验证程序整天都在对我大喊大叫,有了这些,我会收到数百个错误,比如:
&未启动字符引用。(&可能应该作为&;转义)

我的观点是在HAML中,所以我假设我需要逃离这个序列,我很高兴地做到了:

:escape
  <object width="...
:转义

您可能希望将HTML放入它自己的部分,然后将其呈现为字符串并对其执行
string\gsub

将您的Witia HTML放入一个名为app/views/shared/_Wistia.HTML的部分文件中

然后创建一个类似以下内容的帮助器:

def embed_video(partial)
  html = render_to_string(:partial => "shared/#{partial}")
  html.gsub '&', '&amp;'
end

在HAML中,只需将
=embed_video'wistia'
放入您希望插入视频的任何位置。

我刚刚想到,render_to_字符串是ActionController::Base的一部分,可能无法从帮助器调用。如果是这种情况,您可能只需要将该代码移动到控制器中,并将结果存储在一个实例变量中,如
@video=html.gsub('&','&;')