Ruby-on-rails-rails-input-validations

提供:Dev Guides
移動先:案内検索

Ruby on Rails-ユーザー入力の検証

これは、ユーザー入力で実行できる検証のリストです-

validates_presence_of

以下は、last_nameとfirst_nameが満たされるべきで、NULLであってはならないことをチェックします。

validates_presence_of :firstname, :lastname

validates_length_of

次の例は、単一のフィールドでのさまざまな検証を示しています。 これらの検証は個別に実行できます。

validates_length_of :password,
   :minimum => 8           # more than 8 characters
   :maximum => 16          # shorter than 16 characters
   :in => 8..16            # between 8 and 16 characters
   :too_short => 'way too short'
   :too_long => 'way to long'

validates_acceptance_of

以下は、オプションフィールドに「Y」値のみを受け入れます。

validates_acceptance_of :option
                        :accept => 'Y'

validates_confirmation_of

フィールドのパスワードとpassword_confirmationは一致する必要があり、次のように使用されます-

validates_confirmation_of :password

validates_uniqueness_of

次の例では、user_nameの条件を一意にします。

validates_uniqueness_of :user_name

validates_format_of

以下は、指定された電子メールIDが有効な形式であることを検証します。 これは、正規表現を使用してフィールドを検証する方法を示しています。

validates_format_of :email
   :with =>/^(+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i

validates_numericality_of

これにより、指定されたフィールドが数値であることを検証します。

validates_numericality_of   :value
                            :only_integer => true
                            :allow_nil => true

validates_inclusion_of

以下は、渡された値が列挙であり、指定された範囲内に収まることを確認します。

validates_inclusion_of  :gender,
                        :in => %w( m, f )

validates_exclusion_of

以下は、指定された値が指定された範囲内にないことを確認します。

validates_exclusion_of  :age
                        :in => 13..19

validates_inclusion_of

以下は、指定された値が指定された範囲内に収まることを確認します。 これはvalidates_exclusion_ofの反対です。

validates_inclusion_of  :age
                        :in => 13..19

validates_associated

これにより、関連付けられたオブジェクトが有効であることが検証されます。

すべての検証のオプション

すべての検証とともに次のオプションを使用できます。

  • *:message ⇒ 'my own errormessage' *これを使用して、検証が失敗した場合にカスタムエラーメッセージを出力します。
  • :on ⇒:createまたは:update *これは、レコードが作成または更新されているときにのみ検証を実行するような場合に使用されます。 したがって、:create *を使用する場合、この検証は、データベースにcreate操作がある場合にのみ機能します。

検証の詳細については、http://guides.rubyonrails.org/active_record_validationsl [Validations]リンクを確認してください。