2016-03-16 2 views
0

Люди платят процентную плату в зависимости от того, насколько они благотворительны.Метод активной модели не вернет BigDecimal

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

Но почему это, что, когда я запускаю это на консоли плату Боба, я получаю Fixnum:

> bob.charitable 
=> false # Ahh, so he should pay a fifty percent fee 
> bob.fee 
=> 0 # Whaaat? The dastardly bob has somehow [email protected] the system 
> bob.fee.class 
=> Fixnum # What? This was supposed to be a BigDecimal 

Черт вас Боб.

Помогите мне победить Боба.

ответ

1

Перезагрузите консоль вместо reload!, когда вы вносите изменения в модель.

Да, я знаю, я глуп. Но, эй, кто-то еще может быть таким глупым в будущем. Я просто оставлю это здесь.

Смежные вопросы