Скорее всего, потому что HTML преобразуется в представление их сущностей, что дает вам необработанный вывод html.Я не рубиновый парень, но, возможно, функция escape_javascript
делает это, как следует из названия.
В следующем примере кода jQuery следует, например, добавлять html, а не выводить необработанный вывод html:
$('#div').html($('#another_div').html());