# はじめに
みなさんこんにちは。塩尻オープンソースラボの小澤です。
前回はActiveRecordの関連付け(アソシエーション)を使いモデルクラス同士に関係を持たせる方法と、それに付随して発生する「N+1問題」を解説しました。
今回はActiveRecordのバリデーション(検証)を取り上げます。バリデーションもActiveRecordにおける重要な仕組みの1つです。
# バリデーション(検証)
バリデーションとは、データベースにデータを保存する前に、保存するデータが妥当かを検証する仕組みです。Railsではバリデーションを簡単に利用できるようビルトインヘルパーが用意されていますが、独自のバリデータやバリデーションメソッドを作成することもできます。
バリデーションは、モデルクラスに対して次のようなメソッドを呼び出したときに自動的にトリガ(実行)されます。
– create, create!
– save, save!
– update, update!
!がついたcreate!などの破壊的メソッドでは、バリデーションエラーが起きると例外が発生します。一方、!がつかない非破壊メソッドでバリデーションエラーが起きた場合、saveとupdateはfalseを返し、createは単にそのオブジェクトを返します。
なお、newメソッドはオブジェクトを作成するだけのメソッドですので、バリデーションはトリガされません。
また、バリデーションは実行させたいがデータベースには保存しない、といったデータを扱うクラスでは、次のいずれかのモジュールをincludeし、valid?メソッドを呼び出すことで、任意のタイミングでバリデーションのみを実行することができます。
この続きは以下をご覧ください
(リンク »)
お問い合わせにつきましては発表元企業までお願いいたします。