我的问题已经被问过,但我试图理解其背后的原因,而不是如何解决它。

我得到的错误是;

You have already activated rspec-core 2.7.1, but your Gemfile requires rspec-core 2.6.4. Using bundle exec may solve this. (Gem::LoadError)


现在,我得到了各种解决方案,例如使用“ mpapis-bundler”或为“ bundle exec”创建简写,但是我的印象是

$bundle install --binstubs


是为了。

更具体地说,由于我的gemfile中没有指定rspec-rails的版本号,为什么会有这种不兼容性?我尝试时也发生了我的错误

$rake db:migrate


告诉我

You have already activated rake 0.9.2.2, but your Gemfile requires rake 0.9.2. Consider using bundle exec.


任何解释将不胜感激。

编辑:
我所有用于应用程序的宝石都位于一个宝石集中,并且我再次更新了我的宝石。更新是否应确保相关的gem兼容?

最佳答案

当您在系统中安装比Rails应用程序中的gem更多的gem时,就会发生这种情况。

Bundler只是告诉ou,您必须坚持自己的Gemfile状态。

这是运行的目的:

bundle exec rake db:migrate


->运行与Gemfile提供的相同的rake版本。

关于从gemfile更新gem,只需执行以下操作:

bundle update


避免这种无聊的事情的最简单方法是通过创建宝石集来隔离您的宝石。为此,我使用RVM。

关于ruby-on-rails - 更新后如何保持Gemfile中的所有gem兼容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7918804/

10-13 21:27