0

次の形式で検証する必要がある名前の印刷実行のテキストフィールドがあります

印刷実行フィールドの有効な値は、正の整数、「無制限」、および「サイレント」です。

このような検証を追加しました

VALID_NAMES = %w(Unlimited silent  #k)
  validates_inclusion_of :print_run, :in => VALID_NAMES

正の整数を受け入れるための検証の進め方...

validates_numericality_of :print_run, :only_integer => true, :message => "can only be whole number."

上記の検証は数値のみを受け入れます

Integer(attributes_before_type_cast["print_run"])        
errors.add_to_base( "print_run must be a number")    

上記のステートメントは数値のみを受け入れますが、正の整数の検証は受け入れません

これをどのように進めるか..

4

1 に答える 1

0

正の整数のみが必要な場合は、

validates_numericality_of :print_run, :only_integer => true,:greater_than_or_equal_to => 0, :message => "can only be whole number."

無制限またはサイレントまたは正の整数が必要な場合

validates_format_of :print_run, :with => /\A(Unlimited|silent|\d*)\z/, :message => "your custom message"
于 2013-01-04T12:54:20.970 に答える