1

:balanceフィールドを持つUserモデルがあります ( 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

どうやってやるの?

PS validates_format_ofは、私の現在の状況では答えられません。

4

1 に答える 1

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
于 2012-07-23T11:30:00.680 に答える