Я столкнулся с проблемой автоматического экранирования рельсов. В настоящее время он считает, что строка является html_safe (что так и есть), но для целей отображения мне нужно, чтобы она по-прежнему экранировала html. Вот шаги, которые предпринимает строка.
my_string = render(:partial => "set_string", :locals => {:item => @item})
<%= my_string %>
и частичное в основном
<h2>Page Header</h2>
<strong><%= item.name %></strong>
<%= item.body %>
etc
Насколько я понимаю, поскольку я показываю текст в представлении напрямую (h2 и т. д.), он предполагает, что он безопасен, а также правильно экранирует вывод элемента, что делает весь my_string безопасно. Итак, когда я пытаюсь отобразить его с помощью
<%= my_string %>
, он не ускользает от оставшегося html. Я попытался добавить h, чтобы вызвать экранирование, но это не сработало.
Итак, мой вопрос: есть ли способ заставить html экранировать безопасную строку, кроме вызова чего-то в строке, что сделает ее небезопасной?
Большое спасибо за помощь.