Rails 5:`Gem.paths=` 参数中的数组值已弃用

Rails 5: Array values in the parameter to `Gem.paths=` are deprecated

基于 actioncable 示例构建 websockets 应用程序。启动服务器时,运行 rake 等。我不断收到消息:

Array values in the parameter to `Gem.paths=` are deprecated.

在这里没有看到解决方案,但确实找到了。我想 post 在这里问答,以便它可用。

我在 RubyGems 问题 #1551 here 中找到了答案。 binstubs,bin 文件夹中的文件,需要更新。最好的方法是:

bundle update spring
bundle exec spring binstub --remove --all
bundle exec spring binstub --all

这解决了我的问题。

我的 rails 4.2.7 应用程序也遇到同样的错误,我修复了错误以更新 bin/spring 文件第 11 行

Gem.paths = { 'GEM_PATH' => [Bundler.bundle_path.to_s, *Gem.path].uniq.join(Gem.path_separator) }

tl;dr bin/spring binstub,您可能需要在此之前更新 spring(如果 1.3.3 <= spring < 1.6 .4).

spring1.3.3 till 1.6.4.

以来一直在其 binstubs 中使用数组作为 GEM_PATH

rubygems-2.6.0 他们计划 give up on arrays, but apparently those binstubs made its way in a lot of projects. So they restored the array handling in rubygems-2.6.1, but with a deprecation warning. Those 2 correspond to Ruby 2.4.0