这是我在模型中使用的内容:
before_validation :strip_dollar_sign
validates :amount_due,
:format => { :with => /^\d+??(?:\.\d{0,2})?$/ },
:numericality => {:greater_than => 0}
private
def strip_dollar_sign
self.amount_due = self.amount_due.to_s.tr!('$,','').to_f
end
如果我在 Rails 控制台中手动从 strip_dollar_sign 函数运行该行,我得到的正是我想要的(即 400 美元最终为 400.0),但是当我在我的应用程序中使用实际表单时,值总是以 0.0 结尾。有人发现我做错了什么吗?