2012-02-05 136 views

回答

1

您必須爲此編寫自定義驗證方法。

這是我會怎麼做:

validate :custom_inclusion 

private 

def custom_inclusion 
    range = (1..100) 
    begin 
     Kernel.float(field) 
    rescue ArgumentError 
     errors.add(:field,"is not a number") and return 
    end 

    if !(range.min < field.to_i && range.max > field.to_i) 
     errors.add(:field,"is not between #{range.min} and #{range.max}") 
    end 
end 

其中field屬性是要驗證的模型。

+0

非常感謝。我的另一種方法是在'validate_inclusion_of'驗證中追加':if =>:non_zero'選項,因爲當非數字值被分配給它時,這些字段將該值轉換爲0(零)。 – 2012-02-07 07:28:35

相關問題