【问题标题】:Rails 5.2.3 to 6.0.0 upgradeRails 5.2.3 到 6.0.0 升级
【发布时间】:2019-08-17 21:00:23
【问题描述】:

尝试通过 bundle update rails 将 Rails 从 5.2.3 升级到 6.0.0,得到以下错误:

Bundler could not find compatible versions for gem "rails":
In Gemfile:
rails (= 6.0.0)

devise-security was resolved to 0.14.2, which depends on
  rails (>= 4.2.0, < 7.0)

devise_token_auth was resolved to 1.1.0, which depends on
  rails (>= 4.2.0, < 6)

【问题讨论】:

  • 你有没有像这样将rails添加到gemfile? gem 'rails', '~> 6.0'
  • 你好,是的,就像 gem 'rails', '6.0.0'
  • 嗨,John,你的 ruby​​ 版本是什么?
  • 喜 2.6.1 版
  • 你试过bundle update吗?

标签: ruby-on-rails ruby devise


【解决方案1】:

您正在应用程序中使用devise_token_auth gem。 gem 的最新版本是1.1.0,该版本还不支持Ruby on Rails 6.0。它仍然取决于 Rails &gt;= 4.2.0&lt; 6(请参阅其 Rubygems 页面中间的列。

Rails 发布了新的市长版本这一事实通常并不意味着所有 gem 在第一天就支持该版本。顺便说一句,这就是为什么我总是建议尽可能少地使用 gem 的数量而不是为每个简单的问题添加新的 gem 依赖项的原因。我们经常看到 gem 永远不会更新或更新得很晚。

在这种情况下,您似乎很幸运,因为在 GitHub 上的 master 上,这个问题已经是 solved。这意味着维护者已经意识到了这个问题并且正在解决这个问题。您可以选择直接从 GitHub 中提取 gem,方法是将 Gemfile 中的条目更改为

gem 'devise_token_auth', github: 'lynndylanhurley/devise_token_auth'

但请记住,这意味着您基本上一直在使用最新的 alpha 版本,我不建议在生产环境中这样做。不过,继续更新您的应用程序可能是个好主意。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-25
    • 2020-01-15
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多