0

我们将博客文章存储在数据库的文本列中。我们的博客主页需要博客文章的“预览”。这样,我们可以显示最近几天的博客文章以及阅读全文的链接。

rails 有没有办法拉出一定数量的文本列?也许是第一个x bytes?我知道每篇博客文章的长度都不一样,但它应该在一般区域得到它。

或者也许做一些 html/css hack,我们溢出一个 div 并向 div 添加一个椭圆?

我还可以看到创建一个单独的“预览”列,但这感觉很hacky。

导轨 3.2.1。数据库是 MySQL

4

2 回答 2

1

您可以选择列中文本的第一个(或最左边)字符:

SELECT LEFT(POST_BODY, 40) FROM BLOG_POSTS

通常最好让数据库“完成工作”。但是,如果您要在用户单击“更多”时使用博客文章的其余部分,请选择整个文章并使用 Ruby 的字符串方法将其拆分。

于 2012-10-20T00:34:02.837 回答
0

如果我理解正确,您需要将长文本条目转换为有限预览文本的东西,例如This is a preview text, and it says that....

为此,您可以简单地执行以下操作:

text = post.text[0..100] + "..."

它基本上从文本中获取前 100 个字符。如果你想要更复杂的东西,那就把单词考虑进去(这样你就不会得到类似的东西This is a previ...,你可以有一个函数将文本分成单词并将它们添加到最终文本中,直到它们达到所需的长度,比如:

text = post.text
words = text.split(" ")
final_text = ""
words.each do |word|
    final_text += word if final_text.size + word.size < DESIRED_LENGTH
end
final_text += "..."
于 2012-10-20T00:30:29.647 回答