内容标签和html安全未按预期工作

内容标签和html安全未按预期工作,html,ruby-on-rails,ruby,Html,Ruby On Rails,Ruby,我得到了一个包含html标记的字符串,我的最终目标是在应用html标记中的格式后,将其显示在类为“style1”的p块中: <p class="style1">Text I want to display after applying formatting present in tags</p> 应用标记中的格式后要显示的文本 我尝试了以下方法: <%= content_tag :p, class: 'style1' do %> <%= ques

我得到了一个包含html标记的字符串,我的最终目标是在应用html标记中的格式后,将其显示在类为“style1”的p块中:

<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>

格式化问题文本

如果我使用strip_标签(问题),我可以让文本显示在正确的段落div中,但是这显然会在显示数据之前删除任何样式

是否有任何方法可以应用样式,而不显示标记,并以正确的p标记获取内容


提前感谢。

问题字符串是否包含附加的
p
标记?如果是这样,它将不起作用,因为您不能在
p
中嵌套
p

你能把包装换成一个
div
?这应该可以解决它。即

<%= content_tag :div, question.html_safe, class: 'style1' %>

非常非常感谢内容包括一个P标签,它显然关闭了第一个伟大的-不客气。很高兴帮忙!我还添加了另一种解决方案。您可能希望对其进行一点重构,但如果您喜欢一个没有包装器的
p
标记,那么就可以了。
<%= content_tag :div, question.gsub(/<\/?p>/, '').strip.html_safe, class: 'style1' %>