簡體   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