Rails Bundle,gems 冲突,解决它的最佳方法

Hum*_*oxy 5 bundle rubygems conflict ruby-on-rails

我在使用 Bundle 解决宝石冲突时遇到了麻烦。

无法激活 ["activemodel-3.0.8", "actionpack-3.0.8", "railties-3.0.8"] 的构建器(~> 2.1.2,运行时),已激活 [ 的 builder-3.0.0 “黄瓜-0.10.6”](Gem::LoadError)

因此,这意味着当 cucumber 想要版本 3.0.0 时,active* 需要构建器 v 2.1.2。容易,但是...

我该怎么办?降级黄瓜?我尝试了捆绑更新,但...接缝活动模型、包和 Railties 的最新版本是 3.0.8。我如何轻松知道与活动构建器兼容的黄瓜版本?

那么,一般来说,解决这种情况的一般方法是什么呢?

kro*_*ugh 3

这很奇怪;在检查依赖项时, Bundler 应锁定builder到 v2.1.2。

首先,尝试运行bundle updateBundler 重新解析所有依赖项。这应该正确地将构建器锁定到 v2.1.2。

如果失败,您可以通过将构建器 v2.1.2 添加到您的Gemfile

gem `builder`, `~> 2.1.2'
Run Code Online (Sandbox Code Playgroud)

然后跑bundle update builder。这应该将 v2.1.2 添加到您的 中Gemfile.lock,它应该可以与 Cucumber 一起正常工作(它只需要 >= 2.1.2)。

有关更多详细信息,请参阅 Yehuda Katz 最近关于Gem 版本控制和 Bundler的博客文章。