如何修复Rails 6.x和7.x中的undefined method address_list

问题

前几天我遇到了一个问题,看到了这个错误:

# mail.address_list
NoMethodError: undefined method `address_list'

错误来自这一行:https://github.com/rails/rails/blob/6-1-stable/actionmailbox/lib/action_mailbox/mail_ext/addresses.rb#L5-L7

正如我经常做的那样,我定期检查应用程序中的gem依赖并更新它们以保持…最新状态。

在这种情况下,我将mail gem更新到了2.8.x版本。这似乎是问题的根本原因。

事实证明,当mail gem发布时,它破坏了Rails:https://github.com/rails/rails/pull/46643address_list不再是新发布的mail gem的一部分。

解决方案

似乎其他人也遇到了同样的问题,一个解决方案被向后移植到了Rails 6-1和7-0 stable:

在撰写本文时,这些版本尚未发布。因此,一个临时修复可能是将mail从2.8.0降级到2.7.x。

或者,可以使用6-1或7-0 stable并在Gemfile中引用这些版本。预计此修复将在Rails 6.1.8和7.0.5发布时可用。