同一台机器+耙子上的多个Rails

时间:2017-10-17 15:18:51

标签: ruby-on-rails rubygems rake

我已经使用Ruby 1.9.3运行Rails 3.2了一段时间了。最近我添加了Rails 5.1和Ruby 2.4。

我使用rvm安装Ruby2.4。

今天我有机会进入我的一个旧项目并运行rake db:migrate,我收到以下消息:

Gem::LoadError: You have already activated rake 12.0.0, but your Gemfile requires rake 0.9.2.2. Prepending `bundle exec` to your command may solve this.

前置'捆绑执行'确实解决了问题,但据我所知,我想了解发生了什么。我认为项目中Gem文件的重点是锁定所需的宝石。

所以在我的机器上显然仍然有rake 0.9.2.2,但为什么我的命令&rake db:migrate'不自动使用它?

1 个答案:

答案 0 :(得分:0)

原因:某些gem可能已经锁定了rake gem到该版本。你得到的是gemlock文件中的rake版本与你已经安装的版本不同。

<强>解决方法1:

bundle update

<强>溶液2:

编辑gemlock文件。打开Gemfile.lock并更改

rake (0.9.2.2) to rake (12.0.0)

<强> Solution3

删除Gemfile.lock并再次运行bundle install。这将创建 再次使用Gemfile.lock。