2017-10-17 103 views
1

我一直在用Ruby 1.9.3運行Rails 3.2一段時間。最近我添加了Rails 5.1和Ruby 2.4。同一臺機器上的多個Rails vers +耙

我用rvm來安裝Ruby2.4。

今天,我有機會cd到我的老項目之一,並運行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文件的全部重點是鎖定所需的寶石。

因此,我的機器上的某個地方顯然仍然存在耙0.9.2.2但爲什麼我的命令'rake db:migrate'不能自動使用?

+0

瘋狂的事情是我只看着我的gemfile,它沒有任何地方的耙子的提示。這更令人困惑。 – nexar

回答

0

原因:某些gem可能鎖定了該版本的rake gem。當gemlock文件中的rake版本與您已安裝的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的。

+0

謝謝krishnar,我在項目目錄下做這個嗎? – nexar

+0

@nexar我更新了答案,現在檢查 – krishnar

+0

非常感謝您的詳細解答。我明天會試試這個。 – nexar

相關問題