Я пытался написать валидацию для Rails, чтобы цена, введенная в форму, была больше нуля. Это работает ... вроде как. Проблема в том, что когда я запускаю его, val
превращается в целое число, поэтому он считает, что .99 меньше .1. Что происходит, и как мне исправить код?Написание проверки валидатора с целым числом
class Product < ActiveRecord::Base
protected
def self.validates_greater_than_zero(*attr_names)
validates_each(attr_names) do |record, attr, val|
record.errors.add(attr, "should be at least 0.01 (current val = #{val.to_f})") if val.nil? || val < 0.01
end
end
public
validates_presence_of :title, :description, :image_url
validates_numericality_of :price
validates_greater_than_zero :price
end
Большое спасибо, что поможет мне написать лучший код в будущем. – 2010-03-20 13:01:48