Rails 7.1.1 - 发生生成错误 - 乘客 - 您已经激活了 stringio 3.0.0,但您的 Gemfile 需要 stringio 3.0.8

Dav*_*ane 5 ruby ruby-on-rails passenger bundler ruby-on-rails-7

升级到最新版本的 Rails 时,我遇到以下错误,乘客拒绝启动。

The application encountered the following error: You have already activated stringio 3.0.0, but your Gemfile requires stringio 3.0.8. Since stringio is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports stringio as a default gem. (Gem::LoadError)

查找安装的gems版本,仅stringio (default: 3.0.0)是定义的。

在我的 gemlock 文件中,我们现在有

psych (5.1.1.1) stringio 和

stringio (3.0.8)

我的堆栈支持团队针对这个问题提出的一个建议是将 gem 'stringio', '3.0.0' 放入 gemfile 中并强制它使用此版本。

这对我来说感觉不对,而且是我以前从未做过的事情

问题:

  • 任何人都可以提供有关上述解决方案是否正确的建议吗?
  • 任何人都可以帮助我指出正确的方向,以解决此问题的另一个修复以及我应该在哪里寻找?

erw*_*win 0

我遇到了同样的问题,并尝试了我能想到的一切...重建 Passenger Docker、更新捆绑器、手动删除 gem stringio(这是不允许的,因为它是默认 gem)。

我想出的唯一有效的解决方案是更新我的项目以明确要求默认使用的 Passenger DockerGemfile版本。stringio

对我来说,这意味着编辑 ./Gemfile 添加:

gem "stringio", "3.0.1"
Run Code Online (Sandbox Code Playgroud)

我同意你的观点,这感觉像是一个质量非常低的解决方法,可能会在未来产生更多的维护开销。