安装 Rails 6 - Bundler 找不到 gem 动作包的兼容版本

Install Rails 6 - Bundler could not find compatible versions for gem actionpack

我们想为 Rails 6 准备我们的应用程序。

gem 'rails', git: 'https://github.com/rails/rails.git', tag: 'v6.0.0.beta2'

我运行bundle install

Bundler could not find compatible versions for gem "actionpack":
  In Gemfile:
    rails was resolved to 6.0.0.beta2, which depends on
      actionpack (= 6.0.0.beta2)

    rails-controller-testing was resolved to 1.0.4, which depends on
      actionpack (>= 5.0.1.x)

    rspec-rails was resolved to 3.8.2, which depends on
      actionpack (>= 3.0)

    sprockets-rails (~> 3.2.1) was resolved to 3.2.1, which depends on
      actionpack (>= 4.0)

不确定如何前进(我应该注释掉所有列为有问题的 gem 吗?在我看来,所有依赖项都在使用 >= 运算符 - 这是否意味着 actionpack ( = 6.0.0.beta2) 应该也可以吗?我可以得到一些指导吗?

我在这方面投入了更多时间并学习了如何解决这些问题。我很确定我没有 post 输出中关于依赖关系的最重要部分。

通常有 gem 被锁定到某些 gem 版本。你想通过输出手动找到它们。注意这样的输出:

 gem_xyz was resolved to 3.8.2, which depends on
      actionpack (< 3.0)

然后您可以检查是否有针对特定 Github 分支的修复,例如Rails 6 版本并直接从该分支使用 gem。不是超级容易,但你可以慢慢前进,让你的项目提前 Rails6 做好准备......

我在尝试测试 6.0.0.rc2 时遇到了同样的问题。我通过从 Gemfile 中删除 gem minitest-rails-capybara 并根据改进系统测试来解决 https://edgeguides.rubyonrails.org/testing.html

问题不在于 actionpack,而是您尝试安装的其他 gem,这些版本无法与 actionpack (= 6.0.0.beta2) 压缩

rails-controller-testing was resolved to 1.0.4

rspec-rails was resolved to 3.8.2

sprockets-rails (~> 3.2.1) was resolved to 3.2.1

您需要找到与您的动作包版本兼容的版本。 actionpack 的版本由您使用的 rails 版本决定。我和

有过类似的经历
  rspec-rails (~>3.4.2) and,
  factory_girl_rails (~>1.0.4)

升级两者都解决了问题。