0

ブログの投稿をデータベースのテキスト列に保存します。ブログのホームページ用にブログ投稿の「プレビュー」が必要です。そうすれば、過去 2 日間のブログ投稿をリンク付きで表示して、すべてを読むことができます。

レールに一定量のテキスト列を引き出す方法はありますか? 多分最初のx bytes?これは、すべてのブログ投稿で同じ長さではないことを理解していますが、一般的な領域で取得する必要があります.

それとも、div をオーバーフローさせて div に省略記号を追加する html/css ハックを行うのでしょうか?

別の「プレビュー」列を作成することもできましたが、それは非常にハッキリしています。

レール 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 に答える