Если мы посмотрим на исходный код метода h (это псевдоним html_escape), то нетрудно просто открыть файл и добавить одинарную кавычку (') к константе HTML_ESCAPE в файле.
Ниже приведен исходный код метода с указанием местоположения метода в файле. Найдите константу и и в кавычке. Вы можете даже добавить больше вещей внутрь, как хотите.
HTML_ESCAPE = { '&' => '&', '>' => '>', '<' => '<', '"' => '"' }
File actionpack/lib/action_view/template_handlers/erb.rb, line 17
17: def html_escape(s)
18: s.to_s.gsub(/[&"><]/) { |special| HTML_ESCAPE[special] }
19: end
CAVEAT: эта модификация затронет все проекты, которые используют библиотеку.
ИЛИ альтернативой будет создание вспомогательного метода представления, скажем, в ApplicationHelper
def h_with_quote(s)
HTML_ESCAPE = { "'" => "%27"}
h(s).gsub(/[']/) {|special| HTML_ESCAPE[special]}
end
Такой подход должен быть более безопасным.