Мне дали строку с присутствующими тегами html, и моя конечная цель - заставить ее отобразить в блоке p с классом style1 после применения форматирования, присутствующего в тегах html:
<p class = "style1">Text I want to display after applying formatting present in tags</p>
Я пробовал следующие методы:
<%= content_tag :p, class: 'style1' do %>
<%= question.html_safe %>
<% end %>
<p class = "style1"><%= question.html_safe %></p>
<%= content_tag :p, question.html_safe, class: 'style1' %>
Все три подхода оставляют меня с:
<p class = "style1"></p>
<p> Formatted question text </p>
Я могу заставить текст отображаться в правильном абзаце div, если я использую strip_tags (question), однако это, очевидно, удаляет любые стили перед представлением данных.
Есть ли способ применить стиль, чтобы теги не отображались, И получить содержимое в правильном теге p?
Заранее спасибо.






Содержит ли строка вопроса дополнительный тег p? Если это так, это не сработает, поскольку вы не можете вложить p в p.
Не могли бы вы поменять обертку на div? Это должно исправить. I.E.
<%= content_tag :div, question.html_safe, class: 'style1' %>
Или удалите все теги p из вопроса:
<%= content_tag :div, question.gsub(/</?p>/, '').strip.html_safe, class: 'style1' %>
Отлично - пожалуйста. Рад помочь! Я также добавил альтернативное решение. Возможно, вы захотите немного его реорганизовать, но если вы предпочитаете один тег p без оболочки, это должно сделать это за вас.
Большое, много, большое спасибо. - контент включал тег P, который, по-видимому, закрывает первый