Rails の実装で、ああこれ面白いなー、よさげだなー、と思ったものをメモ。
Rails 勉強中 #0 でも触れたけど、ActiveRecord はモデルクラスでデータの Validation ができます。これはコントローラで Validation する必要がなくなるので、コードが簡略化できて見通しがよくなっていいです。その分モデルのコードが増えますが、元々モデルにはそんなにコードを書かないので、多少増えたところで見通しが悪くなったり、煩雑になったりということはないですし。
また、Validation の処理のしかたもなかなかスマート。例えば、フォームで入力必須項目を設定したい場合には、モデルに
validates_presence_of :email
とか書いておいて、View には
<!-- エラーメッセージ表示部分 --> <%= error_messages_for(:order) %> <!-- Email入力フィールド --> EMail: <%= text_field("order", "email", "size" => 40 ) %>
とか書いておくと、以下の様なエラー画面を勝手に出してくれちゃいます。
エラーメッセージも、
validates_presence_of :email, :message => "can't be blank"
といった感じで任意に設定できますし。validates_presence_of 以外にも様々なヘルパーがありますし(詳しくは Rails本で)、もちろん、自分で任意の Validation コードを書くことも可能です。
また、日本人であれば当然、日本語にするにはどうするんだろう、という疑問を持つと思いますが、 gorou さん作の ActiveHeart や、ヽ( ・∀・)ノきゅまきゅまーさんとこの jscaffold とかがあるので心配無用です。お二方、素敵すぎです。
次回はコールバックとオブザーバについて書こうと思います。ほんとは一気に書こうかと思ったので、このエントリのタイトルは最初「ActiveRecord とコールバックとオブザーバ」だったのですが、力尽きました。