maeshimaの日記

メモ書きです

ActionView::Helpers::TextHelper

Railsはかゆいところに手が届くなー。メモ

truncate(text, *args)

textが:lengthで指定した文字数より大きかった場合に、:lengthで指定した文字になるまで切り詰めて、:omission(デフォルトは"...")を末尾に付ける。

これどうせバイト単位で日本語だとうまく動かないんだろうなーと思ってたんだけど、実際試してみたら日本語でも動く!!!どうやらrails内部で1.8でもマルチバイト文字を扱えるようによきに計らっている模様。(詳しくはActiveSupport::CoreExtensions::String::Multibyteを参照)

truncate "ほげほげほげほげほげ", :length => 7 #=> "ほげほげ..." 

concat(string)

<% %>中で画面に文字列を表示させたい場合に使うメソッド。正直使いどころが分からない

cycle(first_value, *values)

メソッドを呼び出した回数に対応した引数を返す。class属性を指定する時などに使える。最後の引数として:nameキーを含むハッシュを指定すると、cycleに名前を指定することが出来る。デフォルトの:nameのキーは"default"。reset_cycleやcurrent_cycleでcycleの名前を指定する。複数のcycleを回すときに使う。

reset_cycle(name = "default")

cycleをリセットする

current_cycle(name = "default")

現在のcycleで返す文字列を返す

excerpt(text, phrase, *args)

textに指定した文字列中に、phraseで指定した文字列に最初にマッチした箇所から、:radius(デフォルト100)で指定された文字列分前後に抜き出して表示する。省略された箇所は:omission(デフォルト"...")で指定された文字列が挿入される。マッチしなかった場合はnilが返る。

highlight(text, phrase, *args)

textに指定した文字列中で、phraseで指定した文字列にマッチした部分に:highlighterで指定した文字列を挿入する。\1とした箇所がマッチしたフレーズになる。

  highlight('You searched for: rails', 'rails', :highlighter => '<a href="search?q=\1">\1</a>')
  # => You searched for: <a href="search?q=rails">rails</a>

simple_format(text, html_options = {}, options = {})

textを簡単なルールを適用してHTMLに変換して返す。二つ以上の\nが続いた場合はpタグで包む。一つの\nであればbrタグを追加する。このメソッドはtextから\nを消したりはしない。html_optionsとして指定したHTMLの属性は全てのpタグに追加される。

simple_format("Look ma! A class!", :class => 'description')
  # => "<p class='description'>Look ma! A class!</p>"

word_wrap(text, *args)

textが:line_width(デフォルト80)で指定した文字数以上の場合に、line_widthを超えた最初のスペースを\nに置き換える。日本語だとあんまり使えないかも。