Diplay предварительно отформатированный HTML на страницах html.erb - PullRequest
0 голосов
/ 28 декабря 2018

Я создаю новый сайт, где отображаются некоторые стихи.Предыдущий владелец сайта дал мне файл Excel с 3 столбцами: заголовок, текст и автор.

Мне удалось прочитать из Excel и отобразить заголовок, текст и автора для каждой поэзии.

ОДНАКО тело было сохранено в Excel с тегами HTML.Поэтому при отображении в моем show.html.erb или home.html.erb теги также отображаются в виде чистого текста.

Я не хочу, чтобы они отображались как текст, но я хочу, чтобы они былипреобразовал / прочитал в тег HTML, чтобы я мог сохранить форматирование поэзии.

Это то, что я вижу на моем сайте (http://localhost:3000/poetries/14): https://imgur.com/a/DHW0x3t

(Для модератора: Я попытался включить изображение, следуя инструкциям StackOverflow, но мне не удалось)

Это то, что я хочу:

Io sono la vostra voce, il calore del vostro fiato,<br>il riflesso del vostro volto,<br>i vani palpiti di vane ali...<br>fa lo stesso, sino alla fine io sto con voi.<br><br>Ecco perché amate così cúpidi<br>me, nel mio peccato e nel mio male,<br>perché affidaste a me ciecamente<br>il migliore dei vostri figli;<br>perché nemmeno chiedeste di lui,<br>mai, e la mia casa vuota per sempre<br>velaste di fumose lodi.<br>E dicono: non ci si può fondere più strettamente,<br>non si può amare più perdutamente...<br><br>Come vuole l’ombra staccarsi dal corpo,<br>come vuole la carne separarsi dall’anima,<br>così io adesso voglio essere scordata.

Мой show.html.erb содержиттолько:

<%= @poetry.body %>

Ответы [ 3 ]

0 голосов
/ 28 декабря 2018

Вы можете сделать:

<%= raw @poetry.body %>

ИЛИ (предпочтительно)

<%= @poetry.body.html_safe %>

Это преобразует ваш текст в вывод HTML.

0 голосов
/ 28 декабря 2018

Хотя вы можете пометить строку как html_safe, это опасно, если вы не можете гарантировать происхождение данных.

Но вы можете использовать sanitize, чтобы гарантировать, что в безопасные теги включены толькострока.Например, если вы хотите сохранить теги <br>, выполните

<%= sanitize(@poetry.body, tags: %w(br)) %>
0 голосов
/ 28 декабря 2018

Попробуйте:

<%= @poetry.body.html_safe %>

или

<%=h @poetry.body %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...