我覺得自己這樣做:在Rails 3中,是否存在驗證字段的快捷方式?
validates_numericality_of :mileage,:if => Proc.new {|car| car.mileage.present? }
有時,里程場可能不會發送,但是當它是,我希望它驗證。我在我的代碼中使用Proc時沒有問題,但它是我爲所有其他可選字段重複的代碼。有沒有類似:if => present?
的快捷方式? 我正在使用Rails 3.0.5。
我覺得自己這樣做:在Rails 3中,是否存在驗證字段的快捷方式?
validates_numericality_of :mileage,:if => Proc.new {|car| car.mileage.present? }
有時,里程場可能不會發送,但是當它是,我希望它驗證。我在我的代碼中使用Proc時沒有問題,但它是我爲所有其他可選字段重複的代碼。有沒有類似:if => present?
的快捷方式? 我正在使用Rails 3.0.5。
你可以使用一個before_validation
鉤空字符串轉換爲nil
,然後使用:allow_nil
option to validates_numericality_of
:
before_validation :clean_up_milage # This would replace '' with nil
validates_numericality_of :milage, :allow_nil => true
allow_nil將空格轉換爲零,所以這不是必需的。 – muffinista 2011-05-07 23:37:59
根據該文件,「請注意,對於長整數和浮點列空字符串轉換爲無」,所以我認爲它仍然可以工作 – muffinista 2011-05-07 23:34:56