2016-10-26 1 views
0

私は現在、レールにapiを開発しようとしています。私はhousenoレール内の列に対して1つの検証メッセージしか生成しない

validates :houseno, presence: true, numericality: true, length: {minimum: 3, maximum: 3} 

しかし、メール

validates :email, format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i}, uniqueness: true 
validates :email_confirmation, presence: true, if: :not_recovering_password, on: :create 
validates :email, confirmation: true, email_format: {message: 'Invalid E-mail address'}, if: :not_recovering_password, on: :create 

検証の検証のために以下のコードを追加している私のモデル.INフィールドメールhousenoフィールドの検証メッセージを表示したいです私はhousenoと電子メールのための空の文字列を与える。複数の検証エラーが発生しました。

"errors": { 
"email": [ 
    "Please enter your e-mail address", 
 "There is an error in the input value of" 
], 
"houseno": [ 
    "Please enter a houseno", 
    "Please enter a numeric value is", 
    "Please enter three or more characters" 
], 

最初の検証メッセージのみを取得するにはどうすればよいですか。問題を解決するためにお手伝いください。ありがとうございます。

答えて

0

お使いのモデルの属性はerrorsです。このオブジェクトにはすべてのエラーが含まれます。特定のエラーが発生した場合は、object.errors[:email]を使用して、フィールドのエラー配列を取得できます。フィールドビアの最初のエラーメッセージobject.errors[:email].firstにアクセスできます。特定のフィールドのエラーが存在するかどうかを確認するにはobject.errors.include?(:email)

関連する問題