无处不在,并且没有改变任何东西,我已经开始出现这个错误(团队中的其他人也是如此)。
对于某些宝石(指定git分支的宝石)会发生这种情况,并且仅在我们重新创建环境时(在vagrant中)才会发生。我们没有改变任何事情。
有什么想法吗?更多信息如下:
Using active_utils (2.0.0) from git://github.com/Shopify/active_utils.git (at v2.0.0)
NoMethodError: undefined method `spec' for nil:NilClass
An error occurred while installing active_utils (2.0.0), and Bundler cannot continue.
Make sure that `gem install active_utils -v '2.0.0'` succeeds before bundling.
Using factory_girl (2.6.5) from https://github.com/thoughtbot/factory_girl (at 2.6.x)
NoMethodError: undefined method `spec' for nil:NilClass
An error occurred while installing factory_girl (2.6.5), and Bundler cannot continue.
Make sure that `gem install factory_girl -v '2.6.5'` succeeds before bundling.
似乎它是Gemfile中指定开始失败的分支的所有条目。
gem 'active_utils', :git => 'git://github.com/Shopify/active_utils.git', :branch => 'v2.0.0'
gem "will_paginate", :git => "git://github.com/mislav/will_paginate.git", :branch => "2-3-stable"
答案 0 :(得分:13)
所以,事实证明这是因为最近升级到RubyGems引起的。强制使用以前的版本。
gem update --system 2.4.8
答案 1 :(得分:4)
虽然已经接受了答案,但我遇到了同样的问题。
最终,原因是我使用过时的捆绑版本并更新到最新版本修复它。有关此处错误的更多信息:https://github.com/bundler/bundler/issues/3560
错误发生在bundler 1.9.3之前。
您可以通过运行gem install bundler
来更新捆绑包
然后通过gem uninstall bundler -v old.bundler.version
如果您正在使用rvm,我建议您在安装之前运行rvm use @global
,在当前ruby版本的全局gemset上安装它。