Я просматривал API Underscore.js и заметил, что _.escape экранирует символы &, <,>, ", 'и /. Что меня удивило, так это побег /. Есть ли причина для побега / символов ...
Похоже, html_safe добавляет к классу String абстракцию, которая требует понимания происходящего, например, <% = '1 2 '%> # дает 1 & lt; b & gt; 2 & ...