Настройка поддержки расширенного текста для Rails на MySQL и Heroku - PullRequest
3 голосов
/ 15 марта 2011

Что нужно для хранения тела форматированного текста, содержащего жирный шрифт, маркеры и разный размер в Rails?

Во-первых, имеет ли тип поля text возможность удерживать это?

Если это так, правда ли, что все, что мне нужно сделать, это отредактировать с помощью текстового редактора и отобразить с помощью <pre>?

1 Ответ

5 голосов
/ 15 марта 2011

Да, тип text предназначен для хранения символьных строк.

Обычный подход заключается в использовании текстового редактора Javascript, который генерирует HTML.Вы сохраняете необработанный HTML-код прямо в базе данных, а затем очищаете его при отображении.Это сделано для того, чтобы запретить людям вводить Javascript и другие неприятности в текстовую область, которая будет выполняться, когда другие посетители будут просматривать их ввод.

Rails 3 по умолчанию очищает ваш вывод, поэтому all HTMLбыть сбежавшимВам нужно будет либо позвонить либо <%= @model.rich_text.html_safe %>, чтобы пропустить эту дезинфекцию, либо (что намного лучше!) Вызвать <%= sanitize(@model.rich_text, :tags => %w(b i p)) %>, передав явный список разрешенных тегов.

У меня нет опыта работы с Heroku, но я могуЯ не могу представить, что все будет иначе.

...