0

ブログアプリにCKEditorを使用しており、:content属性に書式設定データを保存しています。

たとえば、特定の@post.contentはこのように始まる場合があります。

<p>\r\n\t<span class=\"s1\" style=\"color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 1.1em; line-height: 1.7em;\">This is my text starting here. This is an really awesome entry, you see...

エントリの最初の部分はすべてのフォーマットデータであり、実際に書き込まれるコンテンツは「これはここから始まる私のテキストです...」で始まります。

私がやりたいのは、書かれたコンテンツの最初の50文字を表示することです。

私はこのようなことを試みました、

<%= post.content.first(50).try(:html_safe) %>

ただし、フォーマットデータが50文字未満でない限り、これは何も返しません。

書かれたコンテンツの最初の50文字を表示するにはどうすればよいですか?

これが不明な場合、または追加情報が必要な場合はお知らせください。助けてくれてありがとう!

4

2 に答える 2

5

strip_tagsメソッドを使用してみてください

例えば

 <%= truncate(strip_tags(post.content), :length => 50, :omission => '..').html_safe %>
于 2013-01-07T06:42:37.220 に答える
0

そのための1つの方法は、Nokogiriを使用して生のテキストを抽出することです。

require 'nokogiri'

text = Nokogiri::HTML(post.content).text.strip

truncate上記は、メソッドを使用して最初の50文字を表示できる生のテキストを提供します。

于 2013-01-07T06:42:41.923 に答える