Ruby on Rails 「form_forメソッド」 ~赤い繭~
- 編集部の見解や意向と異なる内容の場合があります
- 編集部は内容について正確性を保証できません
- 画像が表示されない場合、編集部では対応できません
- 内容の追加・修正も編集部では対応できません
ヒューマンリソシア株式会社はコラム「Ruby on Rails 「form_forメソッド」 ~赤い繭~」を公開しました。
国語の授業で何故か印象深く筆者の記憶に長く留まっている物語があります。
教科書に載っていた安部公房の短編小説で「赤い繭」というお話です。
今回のコラムで取りあげる話題を模索していると、この物語が浮かび上がり脳裏に張り付いたのです。
その『赤い繭』がform_forというメソッドです。
Ruby on RailsではMVCモデルにおけるビュー(View)に相当するものとしてActionViewが
ActionPackパッケージ内で提供されており、画面表示に関する操作ができます。ActionViewの役割は
レスポンスとして送信するためにHTMLフォーマットなどで動的にページ生成することにあります。
ActionViewは、ビュー・テンプレート(View Template)というHTMLにRubyのコードを埋め込む所定の形式で
記述することで該当レンダリングエンジン(ERB)によりHTMLフォーマットに変換される仕組みです。
このビューの仕組みはJSP(JavaServer Pages)と同様なものと理解出来るでしょう。
ビュー・テンプレートを記述するには、コントローラから渡された情報を画面に動的に反映するためRubyコードを
変換してHTMLタグで出力を行う必要があります。この機能がビューにおけるヘルパーメソッドとしてHTMLタグ毎に
各種用意されており、それらはビューヘルパと呼称されます。
HTMLで複数の情報を入力して送信する画面を表示するにはform(フォーム)タグを使います。
ショッピングサイトなどで名前や住所、電話番号 を入力してくださいとブラウザ画面が表示されているのを
見たことがあるかと思いますが、そのHTMLにはformタグが使われているのです。その入力 フォームを
表示するためのビューヘルパとしてform_tagメソッドとform_forメソッドの2つがActionViewに用意されています。
通常の入力フォームにはform_tagメソッドを使えば良いのですが、もう一つのform_forメソッドはモデル(Model)に
対応した専用フォームの生成に役立ちます。
モデルは、以前の記事「空蝉」にてご紹介したActiveRecordによってデータベースを
操作して取得できるデータを表現したクラスです。
つまり、Railsアプリではモデルに関する情報をユーザ画面入力から取得してその内容をモデルに反映することで
データベースに保存出来るのです。
この処理がRailsアプリを作成する際の重要なパーツとなり多用されるため、モデルの入力フォームを
簡易に生成できると嬉しいのですが、その欲求を満たしてくれるのがform_forメソッドなのです。
以下にform_forを利用する際の典型的なサンプルを紹介します(form_forのソースコードに記載されているものです)。
新規登録する画面をイメージしていただくと良いでしょう。
この続きは以下をご覧ください
http://resocia.jp/column/976/
ソーシャルもやってます!