如何修复Rails 6.x和7.x中的undefined method address_list
问题
前几天我遇到了一个问题,看到了这个错误:
# mail.address_list
NoMethodError: undefined method `address_list'
正如我经常做的那样,我定期检查应用程序中的gem依赖并更新它们以保持…最新状态。
在这种情况下,我将mail gem更新到了2.8.x版本。这似乎是问题的根本原因。
事实证明,当mail gem发布时,它破坏了Rails:https://github.com/rails/rails/pull/46643。address_list不再是新发布的mail gem的一部分。
解决方案
似乎其他人也遇到了同样的问题,一个解决方案被向后移植到了Rails 6-1和7-0 stable:
- https://github.com/rails/rails/commit/f5463f314886016fb40199d1265cacddf64ea357
- https://github.com/rails/rails/commit/05133ee198213ba1fc3b8ac8323646ffee60fd62
在撰写本文时,这些版本尚未发布。因此,一个临时修复可能是将mail从2.8.0降级到2.7.x。
或者,可以使用6-1或7-0 stable并在Gemfile中引用这些版本。预计此修复将在Rails 6.1.8和7.0.5发布时可用。