是什么让这个 rails 项目保持在旧的 rails 版本(或者我如何找出是什么让它保持在旧的 rails 版本)?

What is keeping this rails project at an old rails version (or how can I find out what is keeping it at an old rails version)?

是什么让这个 rails 项目保持旧的 rails 版本(或者我如何找出是什么让它保持在旧的 rails 版本)?

我在看

https://github.com/mhartl/action_cable_chat_app

我克隆了它,或者分叉并克隆了它。

当然,他的 Gemfile 中有这个

gem 'rails',                   '5.0.1'

但是我改成了

gem 'rails'

我做了 bundle installbundle updatebundle update rails

它从非常旧的版本 (5.0.1) 到 rails 5.0.7.2 仍然很旧。

如果我 cd .. 那么我会看到我的全局 rails 版本,这是最新版本。 rails 5.2.3

我猜他的 Gemfile 中可能有一些 gems 需要早期的 rails 版本,这就是阻碍它的原因。但我无法验证,如果是我不知道是哪个。

我试着查看 Gemfile.lock,它说 rails (5.0.7.2) 所以我尝试 rm Gemfile.lock 然后捆绑更新 rails,仍然 rails 5.0.7.2

查看项目的 Gemfile.lock 第 78 行:

jbuilder (2.4.1)
  activesupport (>= 3.0.0, < 5.1)
  multi_json (~> 1.2)

jbuilder gem is depending on an activesupport (which is part of Rails) version < 5.1. You would need to update at least to jbuilder:2.6.3 to allow updating Rails to 5.1. jbuilder:2.6.42.4.1 版本最终放宽了对 activesupport >= 3.0.0 的依赖,这甚至允许当前的 Rails 6.0beta 版本。

由 barlop 添加[​​=34=]

回答者在评论中提到,请参阅 https://rubygems.org/gems/rails 了解 gem

的依赖关系

(并且包含版本,所以,rails是什么版本依赖什么版本依赖gem)