2013-02-20 9 views
5

は、より簡潔に、このように多くの検証を指定する方法はありますか?のRails 3のvalidate存在

validates :col_a, :presence => {:message => 'col_a cannot be blank'} 
validates :col_b, :presence => {:message => 'col_b cannot be blank'} 
validates :col_c, :presence => {:message => 'col_c cannot be blank'} 

私はしなければならない場合、私は一般的なメッセージのために解決します。

答えて

19

を使用することができます

1

はvalidates_presence_ofヘルパーを使用してください。

validates_presence_of :col_a 

EDIT

あなたはvalidates_eachと少しそれをクリーンアップすることができます。 apiページには例があります。 http://api.rubyonrails.org/classes/ActiveModel/Validations.html

、あなたが同じ行に複数のバリデータを指定することができるバリデータ

validates :col_a, :col_b, :col_c, :presence => true 

に複数のフィールド名を付けることができ

validates :col_a, presence: true 
validates :col_b, presence: true 
validates :col_c, presence: true 
+0

ありがとう:あなたは、カスタムメッセージを使用したい場合。私はレール<3ヘルパーを認識しています。質問は(a)の方法(b)は、うまくいけば、それぞれのカスタムメッセージを、より簡潔に複数のcolsに対処する方法を、レール3スタイルのバリデータを使用することでした。 – danh

+0

validates_eachはあなたのためにそれをクリーンアップする必要があります – jbearden

2

に役立ちます願っています。

validates :col_a, :col_b, :col_c, :presence => true, :numericality => true 

完全なエラーメッセージにはフィールド名が含まれます。フィールド名の接頭辞を追加する必要はありません。

validates :col_a, :col_b, :col_c, :presence => {:message => "empty value found"} 
関連する問題