繁体   English   中英

如何让rails不能将转义引号呈现为“

[英]How can I get rails to not render escaped quotes as \"

在我的布局中我有

<% @current_user.popups.each do |p| %>
  <% content_for :script do %>
    <%= "$(document).ready ( function() { $.jGrowl(\"#{p.message}\", { sticky: true }) });" %>
  <% end %>
<% end %>

然后在我的脚本部分

<%= yield :script %>

问题是,这会将转义的引号呈现为\\&quot; 和javascript不喜欢这个。

我怎么能阻止这种情况发生? 或者还有另一种方法吗? 我不能使用单引号,因为我想在消息中有一些html。 我很感激任何帮助。

你在使用Rails 3吗? 在Rails 3中,默认情况下 ,html 转义是完成的 ,你必须每次都绕过它 ,如下所示:jdl上面有正确的想法,但听起来你仍然有问题。

<% content_for :script do %>
  $(document).ready ( function() { $.jGrowl("<%= raw(p.message) %>", { sticky: true }) });
<% end %>

但更好的方法是通过rails提供的帮助程序运行它: escape_javascript以便转义回车和引号

像这样:

$(document).ready ( function() { $.jGrowl("<%= raw(escape_javascript(p.message)) %>", { sticky: true }) });

尝试在视图中将.html_safe添加到您的字符串中。

<%= "$(document).ready ( function() { $.jGrowl(\"#{p.message.html_safe}\", { sticky: true }) });" %>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM