在Rails中使用sanitize和truncate在元素之间添加空格

时间:2015-10-07 08:58:18

标签: ruby-on-rails ruby haml

处理HTML内容并尝试为每个帖子生成一些摘录,我使用以下代码进行清理然后截断,但问题是生成的文本没有任何空格。

= sanitize(post.body, tags: []).truncate(155, separator: ' ...').html_safe

以下图片构成编辑器,每个单词都是一个p  元素,可能有任何HTML元素,如图像,视频,....我只想显示文字。

enter image description here

以下图片是视图,我想在这些词之间添加空格(p元素)

enter image description here

检查

enter image description here

我如何清理,截断内容并保留格式

1 个答案:

答案 0 :(得分:3)

问题是你的标签周围没有空格,即 文字类似于

include ActionView::Helpers::SanitizeHelper

> content = "<p>this</p><p>is</p><p>great</p><p>and</p><p>for</p><p>some</p><p>reason</p>"
> strip_tags(content)
> "thisisgreatandforsomereason"

> content = "<p>this </p><p>is </p><p>great </p><p>and </p><p>for </p><p>some </p><p>reason </p>"
> strip_tags(content)
> "this is great and for some reason"

尝试在<p>标记周围添加空格或使用正则表达式创建空格

for ex

> content = "<p>this</p><p>is</p><p>great</p><p>and</p><p>for</p><p>some</p><p>reason</p>"
> strip_tags(content.gsub('</p>', ' </p>')) # Note the space in replaced content
> "this is great and for some reason"