NoMethodError: undefined method `spec' for nil:NilClass - active_utils, factory_girl and more gems failing
NoMethodError: undefined method `spec' for nil:NilClass - active_utils, factory_girl and more gems failing
不知从何而来,并且没有进行任何更改,我开始遇到此错误(团队中的其他人也是如此)。
某些 gem 会发生这种情况(指定 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.
- 运行 "gem install active_utils -v '2.0.0'" 有效但总是捆绑
失败。
- 已清除 gem 缓存,但没有帮助
似乎是 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"
原来这是由于最近升级到 RubyGems 造成的。强制使用以前的版本有效。
gem update --system 2.4.8
虽然已经有一个可接受的答案,但我 运行 遇到了同样的问题。
最终,原因是我使用了过时的捆绑程序版本并更新到最新版本修复了它。有关此错误的更多信息:https://github.com/bundler/bundler/issues/3560
该错误发生在捆绑程序版本 1.9.3 之前。
您可以通过 运行 gem install bundler
更新捆绑器
然后通过 gem uninstall bundler -v old.bundler.version
删除旧的捆绑器版本
如果您使用的是 rvm,我建议在安装之前通过 运行 rvm use @global
在当前 ruby 版本的全局 gemset 上安装它。
不知从何而来,并且没有进行任何更改,我开始遇到此错误(团队中的其他人也是如此)。
某些 gem 会发生这种情况(指定 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.
- 运行 "gem install active_utils -v '2.0.0'" 有效但总是捆绑 失败。
- 已清除 gem 缓存,但没有帮助
似乎是 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"
原来这是由于最近升级到 RubyGems 造成的。强制使用以前的版本有效。
gem update --system 2.4.8
虽然已经有一个可接受的答案,但我 运行 遇到了同样的问题。
最终,原因是我使用了过时的捆绑程序版本并更新到最新版本修复了它。有关此错误的更多信息:https://github.com/bundler/bundler/issues/3560
该错误发生在捆绑程序版本 1.9.3 之前。
您可以通过 运行 gem install bundler
更新捆绑器
然后通过 gem uninstall bundler -v old.bundler.version
如果您使用的是 rvm,我建议在安装之前通过 运行 rvm use @global
在当前 ruby 版本的全局 gemset 上安装它。