2011-02-10 7 views
4

切り捨てられたルビ文字列の省略を "..."にしたいと思います。ルビで省略をするリンクを切り捨てる

<%= truncate(testimony.testimony, :length => 125, :omission => (link_to "...", testimony)) %><br /> 

が、それはこの行います:ここでは、私が持っているものだ

Etiam porta sem malesuada magna mollis euismod. Aenean lacinia bibendum nulla sed consectetur<a href="/testimonies/1">...</a> 

ではなく、それはコードを示し、実際の...リンクを作成します。参照してください:http://cl.ly/4Wy3のスクリーンショット。

ありがとうございます!

答えて

9

問題はそのTRUNCATEが出力をsantizesで、あなたは以下のドキュメントのようにraw()を使用する必要があります。

結果はHTMLセーフとしてマークされていないので、デフォルトの対象となりますraw()でラップされていない限り、ビューで使用するとエスケープします。切り詰めによって無効なHTML(アンバランスまたは不完全なタグなど)が生成される可能性があるため、テキストにHTMLタグまたはエンティティが含まれている場合は注意が必要です。

EDIT例:

<%= raw(truncate(testimony.testimony, :length => 125, :omission => (link_to "...", testimony))) %><br /> 
+0

素晴らしいです。だから私はこの場合どのように使用しますか? – Marc

+0

ありがとう!素晴らしい仕事を! – Marc

4
<%= truncate(testimony.testimony, :length => 125, :omission => "%s") % link_to("...", testimony) %> 
+0

%意味) "%s" を何クール? – Marc

+0

実際それはまだ出てきました:Etiam porta sem malesuada magna mollis euismod。 Aenean lacinia bibendum nulla sed consectetur ... Marc

+0

%補間です。おそらく、 'truncate'ヘルパーは安全な文字列を返しません。エスケープを避けるには 'raw'を使うべきです。 –

関連する問題