ActiveRecordのバリデーションを知ろう

ヒューマンリソシア株式会社はコラム「ActiveRecordのバリデーションを知ろう」を公開しました。

###

# はじめに
みなさんこんにちは。塩尻オープンソースラボの小澤です。

前回はActiveRecordの関連付け(アソシエーション)を使いモデルクラス同士に関係を持たせる方法と、それに付随して発生する「N+1問題」を解説しました。

今回はActiveRecordのバリデーション(検証)を取り上げます。バリデーションもActiveRecordにおける重要な仕組みの1つです。

# バリデーション(検証)
バリデーションとは、データベースにデータを保存する前に、保存するデータが妥当かを検証する仕組みです。Railsではバリデーションを簡単に利用できるようビルトインヘルパーが用意されていますが、独自のバリデータやバリデーションメソッドを作成することもできます。

バリデーションは、モデルクラスに対して次のようなメソッドを呼び出したときに自動的にトリガ(実行)されます。

– create, create!

– save, save!

– update, update!

!がついたcreate!などの破壊的メソッドでは、バリデーションエラーが起きると例外が発生します。一方、!がつかない非破壊メソッドでバリデーションエラーが起きた場合、saveとupdateはfalseを返し、createは単にそのオブジェクトを返します。

なお、newメソッドはオブジェクトを作成するだけのメソッドですので、バリデーションはトリガされません。

また、バリデーションは実行させたいがデータベースには保存しない、といったデータを扱うクラスでは、次のいずれかのモジュールをincludeし、valid?メソッドを呼び出すことで、任意のタイミングでバリデーションのみを実行することができます。

この続きは以下をご覧ください
リンク

関連情報
http://resocia.jp/
本プレスリリースは発表元企業よりご投稿いただいた情報を掲載しております。
お問い合わせにつきましては発表元企業までお願いいたします。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]