HTML_SAFE разрешает все, кроме <span style = "font-size: TAG

Как запретить изменение размера шрифта в html_safe rails 3

У меня есть сокращенное описание статьи, и я хочу запретить большие шрифты в режиме отображения, когда пользователь вводит большой размер шрифта с помощью редактора tinymce.

= truncate(event.description.html_safe, :length => 110, :omission => "...")

Как я могу это сделать?

1 ответ

Решение

Вы хотите использовать sanitize помощник, прежде чем пометить его как html_safe. К сожалению, в этом случае функциональность черного списка была удалена, поэтому вам нужно будет перечислить буквально все нужные вам атрибуты, в дополнение к значениям по умолчанию. Может быть проще использовать регулярное выражение для удаления рассматриваемого атрибута.

Кроме того, для чего это стоит, raw(event.description) делает так же, как event.description.html_safe, но не будет взорваться на нулевом значении (не уверен, каковы ваши правила проверки), так что это, как правило, предпочтительнее.

Редактировать:

Пример использования Sanitize (с http://apidock.com/rails/v3.2.8/ActionView/Helpers/SanitizeHelper/sanitize):

truncate( raw( sanitize(event.description, :tags => %w(table tr td), :attributes => %w(id class style) ) ), :length => 110, :omission => "...")

Примечание. Подобное усечение HTML может привести к некоторым странным и трудно отслеживаемым ошибкам из-за создания недопустимого HTML из-за обрезанных конечных тегов.

Другие вопросы по тегам