content_tag和html_safe未按预期工作

时间:2018-03-19 14:51:10

标签: html ruby-on-rails ruby

我已经获得了一个带有html标签的字符串,我的最终目标是将其显示在带有类' style1'的p块中。应用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>

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

有什么方法可以应用样式,没有标签显示,并在正确的p标签中获取内容?

提前致谢。

1 个答案:

答案 0 :(得分:1)

问题字符串是否包含其他p标记?如果是这样,它将无效,因为您无法在p中嵌套div

您可以将包装器更改为<%= content_tag :div, question.html_safe, class: 'style1' %> 吗?这应该解决它。即。

p

或者,从问题中删除所有<%= content_tag :div, question.gsub(/<\/?p>/, '').strip.html_safe, class: 'style1' %> 标记:

{{1}}