[英]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 %>
問題是,這會將轉義的引號呈現為\\"
和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.