2007年05月22日

text_field と text_field_tag

Ruby on RailsでViewに<input type="text"/>タグを出力する際、

text_field() と text_field_tag() があって、どちらを使えばよいのか分らず暫くキョトーンとしていたのですが、やはりライド・オン・Railsは優れています。最後の「付録 Appendix」のリファレンスに一言で分りやすく記載されていました。

ヘルパメソッドリファレンス(P353, 357)より参照。

■text_field() 達のグループ。
 ActionView::Helpers::FormHelper
 モデルを対象とするヘルパです。

■text_field_tag() 達のグループ。
 ActionView::Helpers::FormTagHelper
 モデルオブジェクトではなく、値を対象とするヘルパです。

すなわち、

・前者はテンプレートにアサインされたRailsのモデルオブジェクトとその属性にアクセスできるように、
・後者はHTMLタグの名前と値からアクセスできるように

HTMLタグをレンダリングするということらしい。前者が高レベル、後者が低レベルなAPIとも言えましょうか。

ちなみに、同じくここで知りましたが、tag()、content_tag() というパラメータで渡された名前とハッシュによる属性指定(および、content_tag()の場合はcontent部)によって、どんなタグでも生成できる、ヘルパーも発見。

divの様なタグを<%= %>の中で生成できて、Rubyの変数へのアクセスがし易くなり、コードも見やすくなる効果があるそうだ。

良く考えられている。

例によって、これで1時間近く悩んでいたのであった。そんな訳でコーディングがなかなか進まない。しかし納得したので気持ちは良い。

投稿者 iwazawa : 2007年05月22日 00:01
コメント
コメントする









名前、アドレスを登録しますか?