[英]Rails 7 Ruby 3.1 LoadError: cannot load such file -- net/smtp
我升级到 Rails 7 和 Ruby 3.1。 尝试使用rspec
运行测试时,出现以下错误。 我该如何解决?
An error occurred while loading rails_helper.
Failure/Error: require File.expand_path('../config/environment', __dir__)
LoadError:
cannot load such file -- net/smtp
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:34:in `require'
# .../gems/zeitwerk-2.5.2/lib/zeitwerk/kernel.rb:36:in `require'
# .../gems/mail-2.7.1/lib/mail.rb:9:in `<module:Mail>'
# .../gems/mail-2.7.1/lib/mail.rb:3:in `<main>'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/loaded_features_index.rb:100:in `register'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
# .../gems/zeitwerk-2.5.2/lib/zeitwerk/kernel.rb:36:in `require'
# .../bundler/gems/rails-6a0f6c4d70b1/actionmailbox/lib/action_mailbox/mail_ext.rb:3:in `<main>'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/loaded_features_index.rb:100:in `register'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
# .../gems/zeitwerk-2.5.2/lib/zeitwerk/kernel.rb:36:in `require'
# .../bundler/gems/rails-6a0f6c4d70b1/actionmailbox/lib/action_mailbox.rb:3:in `<main>'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/loaded_features_index.rb:100:in `register'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
# .../gems/zeitwerk-2.5.2/lib/zeitwerk/kernel.rb:36:in `require'
# .../bundler/gems/rails-6a0f6c4d70b1/actionmailbox/lib/action_mailbox/engine.rb:9:in `<main>'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/loaded_features_index.rb:100:in `register'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
# .../gems/bootsnap-1.9.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
# .../gems/zeitwerk-2.5.2/lib/zeitwerk/kernel.rb:36:in `require'
# ./config/application.rb:11:in `<top (required)>'
# ./config/environment.rb:2:in `require_relative'
# ./config/environment.rb:2:in `<top (required)>'
# ./spec/rails_helper.rb:4:in `require'
# ./spec/rails_helper.rb:4:in `<top (required)>'
No examples found.
Finished in 0.00005 seconds (files took 0.57758 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples
将gem 'net-smtp', require: false
添加到您的Gemfile并运行bundle
。
同样,我假设您可能对net-imap
和net-pop
有问题,因此必须添加它们,直到发布新的mail
gem 版本。
gem 'net-smtp', require: false
gem 'net-imap', require: false
gem 'net-pop', require: false
2022 年 1 月 6 日,Rails 7.0.1 发布:
此版本的重点是支持 Ruby 3.1
在其他与 Ruby 3.1 相关的问题中,它解决了这个问题。 所以升级到 Rails >= 7.0.1 。
相关的拉取请求和问题:
在生产模式下运行 Rails 时,我遇到了同样的问题。 (Ruby 3,导轨 6.1)
将这行代码复制并粘贴到Gemfile
:
gem 'net-smtp', require: false
gem 'net-imap', require: false
gem 'net-pop', require: false
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.