У меня есть поле text_area в форме, которая позволяет форматировать текст через очень простой WYSIWYG (полужирный/подчеркивающий/маркерные точки). Это было нацелено на согласованное форматирование в профиле описания пользователей.Разрешить копировать/вставлять в поле формы text_area, но удалять форматирование
<%= l.text_area :access, value: "#{t('.access_placeholder_html')}" %>
Тем не менее, некоторые пользователи обычно заполняют текстовую область путем копирования/вставки непосредственно со своего веб-сайта. И их конкретные форматирование «гипертекстовые ссылки», размер шрифта и т. Д. После отражения на моем сайте, что делает его немного грязным.
Как я могу решить эту проблему. В идеале мне бы очень хотелось, чтобы при сохранении формы он избавлялся от всего HTML-кода, который не разрешен, а не позволяет копировать/вставлять. Это возможно? Интересно, следует ли использовать Sanitize, но если да, то как? (Извините за новый код, я думаю, вы бы поняли).
Одна вещь, вы можете хранить разметку HTML в базах данных e и дезинфекция в представлении перед отображением. Таким образом, в будущем вы можете сделать что-то еще с текстом HTML, если вы выберете. Если вы отбросили форматирование перед сохранением, оно исчезнет. – Fred
Спасибо за быстрый ответ и ссылку. Я использую Ruby 2.2.1. Я должен был сказать вам, что я уже прошел через санитарию перед публикацией. Поэтому, если я выберу вариант 2 (избавьтесь от форматирования перед сохранением), как мне его написать? Как я могу объединить поле формы и дезинфицировать вместе? – user6877257
Простейшим способом было бы дезинформировать строку в модели при назначении текстового поля атрибуту модели перед сохранением в базе данных. Вы не можете обработать form_field на лету без какой-либо тщательной мысли (например, что бы вы сделали, если недоделанный текст не был хорошо сформированным HTML). Вы можете запустить некоторый javascript, когда текстовое поле теряет фокус и вычеркнет HTML, но если вы вернете результат в текстовое поле, это может смутить пользователя. Вам необходимо точно определить, что вы хотите сделать, прежде чем выбирать метод реализации. – Fred