Validationを付与する

前回作成したUserのCRUDアプリにバリデーションをつけてみます。


まずapp/model/user.rbを開いて、バリデーションの定義を追記します。

  • create時にnameはユニークでないとだめ
  • nameは3〜40(多分Byte)
  • passwordは5〜40

ソースはこんな感じ。意外にわかりやすいかも。

class User < ActiveRecord::Base
   validates_uniqueness_of :name, :on => :create  
   validates_length_of :name, :within => 3..40
   validates_length_of :password, :within => 5..40
end

では、動作を確認します。
Webブラウザhttp://localhost:3000/users/にアクセスしてデータ新規登録を実行。ちなみにnameもpasswordを何も入力していません。

そうすると、ちゃんとバリデーションエラーが返ってきました。

3 errors prohibited this user from being saved
There were problems with the following fields:

Name is too short (min is 3 characters)
Name has already been taken
Password is too short (min is 5 characters)

これもかなりお手軽です。