将Rails 5.2.3升级到6.0.0

时间:2019-08-17 21:00:23

标签: ruby-on-rails ruby devise

尝试通过捆绑更新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)

1 个答案:

答案 0 :(得分:1)

您正在应用程序中使用devise_token_auth gem。 gem的最新版本是1.1.0,该版本尚不支持Ruby on Rails 6.0。还是要看   Rails >= 4.2.0< 6(请参见其Rubygems页面中间的列。

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

在这种情况下,您似乎很幸运,因为在GitHub上的master上,此问题已经solved。这意味着维护人员已意识到此问题并正在研究。您可以选择将Gemfile中的条目更改为

,直接从GitHub中提取gem。
gem 'devise_token_auth', github: 'lynndylanhurley/devise_token_auth'

但是请记住,这意味着您基本上一直在使用最新的Alpha版本,我不建议在生产中使用它。不过,最好继续更新应用程序。