Active Model的方法不会返回BigDecimal

时间:2016-03-16 16:33:12

标签: ruby-on-rails ruby

人类根据他们的慈善程度支付一定的费用。

class Human < ActiveRecord::Base
  def fee
    if charitable
      fee = BigDecimal('0.2')
    else
      fee = BigDecimal('0.5')
    end
    fee
  end
end

但是为什么当我在控制台上为Bob收取费用时,我得到Fixnum

> bob.charitable
 => false # Ahh, so he should pay a fifty percent fee
> bob.fee
 => 0 # Whaaat? The dastardly bob has somehow H@X0R the system
> bob.fee.class
 => Fixnum # What? This was supposed to be a BigDecimal
该死的鲍勃。

帮助我击败鲍勃。

1 个答案:

答案 0 :(得分:1)

当您对模型进行更改时,重新启动控制台而不是reload!

是的,我知道,我很蠢。但是,嘿,将来其他人可能会这么愚蠢。我会把它放在这里。