HTMLフォーム(後編)
本書は、『Ruby on Rails 5.0初級』シリーズの第4巻です。前巻に引き続き、簡易予定表管理システムPicoPlannerの開発を行いながら、RailsにおけるHTMLフォームの取り扱い方について学んでいきます。
導入部に当たる第1章を除くと、この巻の内容は三つの部分に分類できます。
「今日の予定表」機能とは、今日始まる予定項目および昨日以前に始まって継続中の予定項目をリスト表示する機能です。この機能を実装する過程で、私たちは「七つの基本アクション」に含まれないアクションを定義する方法、時刻を基準としてデータベースのレコードを絞り込む方法、BootstrapのNavコンポーネントの使い方、などの知識を得ます。
続いて、「終日」フラグの導入により、一日中続く予定項目や開始と終了の時刻がはっきりしない予定項目をPicoPlannerで扱えるようにします。ここでのメインの学習目標は、ブーリアン(真偽値)という型の値をRailsおよびデータベースで扱う方法です。また、HTMLフォームにチェックボックスを設置する方法、jQueryを利用してチェックボックスの状態に応じてフォームの一部の表示・非表示を切り替える方法についても学びます。
最後に、Railsのバリデーション機能について学びます。この機能自体はそんなに複雑なものではありませんが、現実のWebアプリケーション開発で応用しようとするとさまざまな工夫が必要となります。特に、日付や時刻に関わるバリデーションを丁寧に説明しました。
また、バリデーションが失敗したことをユーザーに知らせるため、フォームのビジュアルデザインを制御する方法についても丁寧に説明しました。ラベル文字列や入力欄の枠線に色を付けたり、日本語でエラーメッセージを表示しながら、RailsとBootstrapのさまざまな小技を学んで行くことになります。
特に、第12章「フォームビルダーの拡張」では、オブジェクト指向プログラミングの「華」とも言える「委譲(delegation)」という概念が本シリーズで初めて登場します。初めての方は理解するのに少し時間を要するかもしれませんが、大事なところなのでじっくりと腰を据えて取り組んでいただきたいと思います。
本書を読み終えた読者は、OIAX BOOKSの『Ruby on Rails 5.0 初級⑤』(2017年秋〜冬刊行予定)に進んでください。
扉・目次・奥付を除いた本文の分量はB5変型判(一般的なコンピュータ書の判型)で186ページ相当です。