如何解决MailCatcher在rbenv+Ruby3.2.2环境下运行报错问题?
错误成因分析
1. Ruby版本API变更
Ruby 3.0及以上版本彻底移除了BigDecimal.new方法——这个方法早在Ruby 2.5就被标记为废弃,官方推荐改用BigDecimal()或BigDecimal.parse()来创建BigDecimal实例。你当前使用的Ruby 3.2.2已经完全不支持BigDecimal.new的调用。
2. 依赖库版本过旧
MailCatcher 0.5.10依赖的activesupport-3.2.22.5是多年前的老旧版本,其代码中仍在使用已被移除的BigDecimal.new方法,无法适配Ruby 3.x系列的API变更,导致触发NoMethodError。
3. MailCatcher版本滞后
你安装的MailCatcher 0.5.10是过时版本,没有针对Ruby 3.x做兼容性适配,依赖的老旧ActiveSupport库进一步加剧了版本冲突问题。
错误信息原文:
.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/activesupport-3.2.22.5/lib/active_support/core_ext/object/duplicable.rb:111:in `<class:BigDecimal>': undefined method `new' for BigDecimal:Class (NoMethodError) BigDecimal.new('4.56').dup
内容的提问来源于stack exchange,提问作者mkelley33
相关产品推荐
相关产品推荐

