0

我有一个 Rails 操作文本字段:content,如果我接受整个字段,它会呈现良好,但它很长,我只想显示它的一部分。

<%= year.content %>工作正常,只是它太长了。

<%= year.content.truncate(70) %>结果是undefined method 'truncate' for #<ActionText::RichText:0x00007ffb811a6060>

<%= year.content.to_s.truncate(70) %>我可以使用的显示器<div class="trix-content"> <div> <strong>Jack Marietich, restaura...,但是有没有一种方法我不必去掉开头?

4

3 回答 3

5

Trix 使用 rails actiontext 添加纯 html,它在我发布后出现,但之前没有。

<%= year.content.to_plain_text.truncate(70) %>

https://api.rubyonrails.org/classes/ActionText/RichText.html#method-i-to_plain_text但即使我找到了,我也不确定我是否会理解这是我需要的。

于 2021-02-08T20:30:47.930 回答
1

如果您这样做是为了预览,您可以去除标签然后截断。像这样的东西:

<%= truncate(strip_tags(year.content.to_s), length: 70) %>

并不是说我提倡猴子修补,但如果这是您计划经常使用的东西,这似乎是添加自定义方法的好选择。

于 2021-02-08T20:29:56.050 回答
0

如果您想保留样式,但要截断内容(后跟“阅读更多”或类似内容),请查看以下 css:

.line-clamp {
  display: -webkit-box;
  -webkit-line-clamp: 3; // number of lines
  -webkit-box-orient: vertical;  
  overflow: hidden;
}

<div class="line-clamp">
 <%= year.content %>
</div>

然后,您可以使用一些基本的 JS 切换来删除 line-clamp 类以显示其余内容。

于 2021-08-24T14:25:37.787 回答