在 BigDecimal 上定义检查的缺点
Disadantages of defining inspect on BigDecimal
我在Rails中使用小数类型来存储货币。
但是,我厌倦了不断看到这样的结果:
nominal_amount: #<BigDecimal:7f919884b648,'0.7E6',9(18)>
当我使用 Rails 控制台时。
我可以通过在 BigDecimal
上将 inspect
定义为 def inspect; to_s; end
来解决此问题,但我担心这会导致特殊错误。
有人可以保证或警告不要使用这个猴子补丁吗?
Ruby 文档建议为用户定义的 类 覆盖 inspect
。它 returns 一个人类可读的字符串。任何其他代码都不应依赖 inspect
的功能。因此,如果您决定它对您来说更易于阅读,那么如果您更改默认行为就可以了。只要您不将其包含在 gem 或外国开发人员将使用的其他代码中。
嗯,如果你把它放在一个初始化器中并且 运行 它只在开发模式下......我没有看到任何风险。其他人的代码有可能依靠 BigDecimal.inspect 返回对象字符串。我会说这是一个仅用于开发的修改。
inspect
"Returns debugging information about the value as a string"。
见apidock.com/ruby/BigDecimal/inspect
我怀疑覆盖 调试 输出格式会破坏任何东西。我也是 monkey-patching to_s
。
我在Rails中使用小数类型来存储货币。
但是,我厌倦了不断看到这样的结果:
nominal_amount: #<BigDecimal:7f919884b648,'0.7E6',9(18)>
当我使用 Rails 控制台时。
我可以通过在 BigDecimal
上将 inspect
定义为 def inspect; to_s; end
来解决此问题,但我担心这会导致特殊错误。
有人可以保证或警告不要使用这个猴子补丁吗?
Ruby 文档建议为用户定义的 类 覆盖 inspect
。它 returns 一个人类可读的字符串。任何其他代码都不应依赖 inspect
的功能。因此,如果您决定它对您来说更易于阅读,那么如果您更改默认行为就可以了。只要您不将其包含在 gem 或外国开发人员将使用的其他代码中。
嗯,如果你把它放在一个初始化器中并且 运行 它只在开发模式下......我没有看到任何风险。其他人的代码有可能依靠 BigDecimal.inspect 返回对象字符串。我会说这是一个仅用于开发的修改。
inspect
"Returns debugging information about the value as a string"。
见apidock.com/ruby/BigDecimal/inspect
我怀疑覆盖 调试 输出格式会破坏任何东西。我也是 monkey-patching to_s
。