前回までに、ユーザーデフォルトの設定が出来るようになったが、現状では入力された値のチェックはしていない。だから予想外の入力がされると、エラーが発生してしまう。入力値の検証機能(validate)が必要だ。 ところが、今回は複数のオブジェクトをyamlに変換して1つのフィールドに保存するようにしている。検証したいのはyamlに変換する前の個々のハッシュオブジェクトの値だ。こんな時はどのように処理するべきなのか?以下は、試行錯誤の結果、その処理方法のメモ。 エラーのチェック app/models/default.rb モデル(defaultテーブルを管理) 標準的なvalidate 値のチェックの対象がyamlフィールドそのものであれば、以下のように簡潔に表現することが出来る。(例:yamlフィールドはintegerタイプで、値が直接保存されると仮定して、1から100の範囲外の時はエラーにする
2012/09/24 シナジーマーケティング(株) 寺岡 佑起 Model 3章 バリデーション 3.1. バリデーションとは 3.2. バリデーションの定義 3.3. バリデーションの実行タイミング 3.4. バリデーションエラーの確認 3.5. ビューへの表示 3.6. 組み込みのバリデーション 3.7. 共通のバリデーションオプション 3.8. 独自ロジックでのバリデーション 3.9. カスタムバリデータの作成 3.8. 独自ロジックでのバリデーション validates_each validates_eachメソッドは、組み込みのバリデーションでは実現できない検証をモデル内で簡単に定義したい場合に利用します。 validates_eachには引数として任意の数の検証対象のフィールド名を与え、検証処理をブロック内で定義します。 ブロックはバリデーション時に実行され、引数に対象レコード
2012/09/25 シナジーマーケティング(株) 寺岡 佑起 Model 3章 バリデーション 3.1. バリデーションとは 3.2. バリデーションの定義 3.3. バリデーションの実行タイミング 3.4. バリデーションエラーの確認 3.5. ビューへの表示 3.6. 組み込みのバリデーション 3.7. 共通のバリデーションオプション 3.8. 独自ロジックでのバリデーション 3.9. カスタムバリデータの作成 3.7. 共通のバリデーションオプション 前項(3.6. 組み込みのバリデーション )で紹介したバリデーション定義に対して、共通して利用できるオプションがあります。 :allow_nil :allow_nilオプションにtrueを指定すると、検証対象の値がnilの場合にバリデーションがスキップされ、エラーが発生しません。 :allow_blank :allow_nilオプショ
2012/09/24 シナジーマーケティング(株) 寺岡 佑起 Model 3章 バリデーション 3.1. バリデーションとは 3.2. バリデーションの定義 3.3. バリデーションの実行タイミング 3.4. バリデーションエラーの確認 3.5. ビューへの表示 3.6. 組み込みのバリデーション 3.7. 共通のバリデーションオプション 3.8. 独自ロジックでのバリデーション 3.9. カスタムバリデータの作成 3.6. 組み込みのバリデーション Active Recordには文字数制限や数値文字の検証など、多くのシステムで必要とされるバリデーションがあらかじめ組み込まれています。 組み込みで利用できるバリデーションを紹介します。 presence 入力が必須であるフィールドに対して指定します。 bool型のフィールドを検証する場合は、後述のinclusionに[true, fals
2012/09/24 シナジーマーケティング(株) 寺岡 佑起 Model 3章 バリデーション 3.1. バリデーションとは 3.2. バリデーションの定義 3.3. バリデーションの実行タイミング 3.4. バリデーションエラーの確認 3.5. ビューへの表示 3.6. 組み込みのバリデーション 3.7. 共通のバリデーションオプション 3.8. 独自ロジックでのバリデーション 3.9. カスタムバリデータの作成 3.4. バリデーションエラーの確認 バリデーションで発生したエラー情報は対象オブジェクトのerrorsに格納されます。 エラー情報が格納されているかどうかはerrors.blank?メソッドで確認することができます。 各フィールドで発生したエラー情報は、errors[:フィールド名]で取得できます。 同一のフィールドが複数の検証に失敗する可能性があるため、エラー情報は配列で
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く