我在Rails中使用十进制类型来存储货币。
然而,我厌倦了不断看到如下结果:
nominal_amount: #<BigDecimal:7f919884b648,'0.7E6',9(18)>
当我使用Rails控制台时。
我可以通过在inspect
上将def inspect; to_s; end
定义为BigDecimal
来解决此问题,但我担心这会导致特殊错误。
任何可以保证或警告这个猴子补丁的人?
答案 0 :(得分:2)
Ruby Doc建议覆盖用户定义类的inspect
。它返回一个人类可读的字符串。没有其他代码应该依赖inspect
的功能。因此,如果您决定,它更易于人类阅读 - 如果您更改默认行为,则可以。只要您不将它包含在gem或其他代码中,外国开发人员就会使用它。
答案 1 :(得分:1)
嗯,如果你把它放在初始化器中并且只在开发模式下运行......我没有看到任何风险。有可能其他人的代码在BigDecimal.inspect上重复返回一个对象字符串。我会说它只是一种开发修改。
答案 2 :(得分:1)