В моем расположении я имею
<% @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 }) });