Rails - 当它仍然是String时验证Float类型

时间:2012-07-23 11:13:31

标签: ruby-on-rails ruby validation

我的用户模型带有:balance 字段( float 类型)。我想为这个字段编写自己的验证,但是当它仍然是一个字符串并且Rails还没有将它转换为float时我希望能够访问这个值。我的意思是,我想做这样的事情:

class User < ActiveRecord::Base
  validate :check_balance

  def check_balance
    if balance.is_a?(String)
      # do my validation, add errors and etc.
    end
  end
end

我该怎么做?

P.S。 validates_format_of 在我目前的情况下没有回答。

1 个答案:

答案 0 :(得分:1)

<attribute>_before_type_cast返回attribute的原始值:

def check_balance
  if balance_before_type_cast.is_a?(String)
    // do my validation, add errors and etc.
  end
end