Monkey-patching Rails:BigDecimal输出

时间:2015-01-24 04:32:44

标签: ruby-on-rails monkeypatching

我将货币值存储在我的数据库中作为Decimal类型,并且对于它们在rails中映射到BigDecimal并因此使用科学记数法打印的事实感到不满意。 (是的,我可能应该存储整数美分。)

  1. 控制台命令MyModel.first在这个猴子补丁之后输出十进制价格,如常规浮点数:

    class BigDecimal
      def inspect
        to_s
      end
    end
    
  2. 但是,在这个猴子补丁之后,控制台命令puts MyModel.first.to_yaml不会将十进制价格作为常规浮动输出:

    class BigDecimal
      def to_yaml
        to_s
      end
    end
    
  3. ...但是puts BigDecimal.new(1).to_yaml符合我的期望。

  4. 通过ruby和rails源代码库我看起来并不是很舒服,但我已经尝试过,但在上面的第二种情况下无法找到输出格式的位置。

    我应该在哪儿看?我错过了什么?

0 个答案:

没有答案