【发布时间】:2015-07-11 22:13:37
【问题描述】:
我将模型实例的一些属性保存为浮点数,但我的应用程序必须使用逗号而不是点来处理来自表单的输入(例如,10,99 应保存为 10.99)。 我正在尝试使用 before_validation 回调来做到这一点,但我无法使其正常工作 - 逗号输入无法通过验证,我不断收到 price/size2 is not a number 错误。
class Advert < ActiveRecord::Base
before_validation do
normalize(self.price) if is_number?(self.price)
normalize(self.size2) if is_number?(self.size2)
end
validates :price, presence: true, numericality: true
validates :size2, numericality: true
def is_number?(string)
true if Float(string) rescue false
end
def normalize(number)
number.to_s.gsub!(',', '.').to_f
end
任何帮助将不胜感激。
【问题讨论】:
标签: ruby-on-rails validation ruby-on-rails-4 callback