4

私はこのhtmlテキストを持っています:

<p> I'm a html &nbsp; text</p>

Webページに表示するには、最初にサニタイズしてタグを削除します。

sanitize(best_practice.milestone.description, :tags=>[])

次に、[OK]を表示します&nbsp;。削除されます。

しかし、次のようにテキストを切り捨てることを決定した場合:

sanitize(best_practice.milestone.description, :tags=>[]).truncate(30)

&nbsp;私のWebページに再び表示されます。すべての特殊文字が実際に表示されます。

この特別な文字を表示するために切り捨てを回避するにはどうすればよいですか?

4

1 に答える 1

11

サニタイズヘルパーと切り捨てに対処するのは難しい場合があります。さまざまなサニタイズヘルパーがあります:h、CGI :: escapeHTML、sanitize、strip_tags、html_safeなど。文字列が開始タグと終了タグの間、または途中で切り捨てられる場合、サニタイズと切り捨てはうまく機能しません。特別なHTML文字。

次のステートメントは機能しているようです

sanitize(text, :tags=>[]).truncate(30, :separator => " ").html_safe

秘訣は、自然な区切りでテキストを切り捨てるために:separatorオプションを渡すことです。

于 2012-12-12T14:30:47.010 に答える