Rails捆绑,gem冲突,解决它的最佳方法

我遇到麻烦使用Bundle来解决gem冲突。

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

所以这意味着当黄瓜需要版本3.0.0时,active *需要builder v 2.1.2。 容易,但……

我该怎么办呢? 低档黄瓜? 我尝试了捆绑更新但是…接缝最后版本的活动模型,包和铁路是3.0.8。 我怎么能知道黄瓜版与活跃的建造者兼容?

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

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

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

如果做不到这一点,你可以通过将它添加到你的Gemfile来强制构建器Gemfile

 gem `builder`, `~> 2.1.2' 

然后运行bundle update builder 。 这应该将v2.1.2添加到你的Gemfile.lock ,它应该可以正常使用Cucumber(它只需要> = 2.1.2)。

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