validate処理
- 入力チェック
定義されているバリデータ
名前 | 説明 | 例 | 例の説明 |
validates_acceptance_of | 「この規約に同意しますか?」などのチェックボックスがチェックされたかを確認。これを指定するとDBには保存されない仮想的なカラムが自動生成される。 | validates_acceptance_of:kiyaku | チェック・ボックスの値をkiyakuカラムにいれると、チェックされていない場合にはエラーが起こる。 |
validates_confirmation_of | 確認のために同じ値を入力させた場合の同定チェック。Passwordカラムを指定した場合、DBには保存されない。Passwor_confirmationカラムができ、PasswordカラムとPasswor_confirmationカラムの同一性チェックをする。 | validates_confirmation_of:email | emailカラムとemail_confirmationカラムの値を比較して、不一致の場合にエラーが起こる。 |
validates_inclusion_of | 指定した値に含まれているかをチェック。validates_exclusion_ofとは逆の挙動 | validates_inclusion_of:year, :in => 1900..2007 | yearカラムが1900~2007の間に入っていない場合は、エラー |
validates_inclusion_of:sex, :in => ['female','male'] | sexカラムが、'famale' でも 'male'でも無い場合には、エラーが起こる | ||
validates_exclusion_of | 指定した値に含まれていないかをチェック。validates_inclusion_ofとは逆の挙動 | validates_exclusion_of:age, 0..19 | ageカラムが0~19の間に入っていた場合には、エラーが起こる。 |
validates_format_of | 正規表現で指定した書式でチェック | validates_format_of:zip, :with = /^\d{3}-\d{4}$/ | zipカラムが郵便番号のフォーマットに合っていない場合はエラーが起こる |
validates_length_of validates_size_of | 入力した文字数をチェック。日本語などもバイト数ではなく文字数でチェックされる。 | validates_length_of : phone, :in =>9..11 | phoneカラムの桁数が9~11ではない場合にエラーが起こる |
validates_numericality_of | 入力した文字列が数字か否かをチェック。 | validates_numericality_of:price | priceカラムに数字以外が入っていたらエラー |
validates_numericality_of:num :only_interger => true | |||
validates_presence_of | 入力されているかをチェック | validates_presence_of: mail | mailカラムに何も入力されていない場合にはえらー |
validates_uniqueness_of | DB内で重複していないかチェック | validates_uniqueness_of: mail | mailカラムの値が既にDBに登録されている場合はエラー |