В Rails, как я могу разрешить HTML в текстовой области? - PullRequest
11 голосов
/ 14 мая 2010

У меня есть приложение Rails (блог), которое я создаю. Очень простые вещи. В моей области контента у меня есть текстовая область для содержания поста. Мне нужно включить HTML в текстовой области (ссылки, форматирование и т. Д.).

<%= f.text_area :content %>

Есть ли другой тег, который я могу использовать вместо text_area, который позволит мне сделать это?

Ответы [ 6 ]

18 голосов
/ 10 июля 2011

Вы пробовали это во взглядах?

 <%= content.html_safe %>
10 голосов
/ 05 апреля 2016

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

Пример использования:

sanitize @post, tags: %w(strong em a code pre h2 h3 p blockquote ul ol li br),
                attributes: %w(href class)

Параметр тегов позволяет указать, какие теги использовать и использовать с атрибутами html.

5 голосов
/ 14 сентября 2011

Безопасный метод HTML на самом деле .html_safe. Только что протестировано в текстовом поле.

Например:

<%= @item.description.html_safe %>
1 голос
/ 15 февраля 2019

С появлением Rails 6 вы сможете использовать новый тег rich_text_area для создания текстового редактора в ваших формах, например:

<%= form_with(model: article) do |f| %>
  <div class="field">
    <%= f.label :content %>
    <%= f.rich_text_area :content %>
  </div>
<% end %>

См. Руководство по рельсам для текста действий

1 голос
/ 10 июля 2011

Вы ищете что-то похожее на опции полужирный , курсив , ..., которые вы получаете при публикации в stackoverflow? Если это так, я бы предложил Markitup , плагин текстового редактора для jQuery. Как только вы получите эту настройку, вы сможете ввести разметку в вашей текстовой области (например, Markdown , bbcode, ...). Когда вы фактически отображаете результат на странице, вам просто нужно, чтобы Ruby проанализировал выбранный вами язык разметки.

1011 * Е.Г. *

<%= @user.bio.bb_code %>

Используя этот метод, вы разрешаете своим пользователям безопасно вводить стилизованный текст.

0 голосов
/ 14 мая 2010

text_area_tag , вероятно, то, что вы хотите.

...