2015-11-16 15 views
6

Hết hư không, và không thay đổi bất cứ điều gì, tôi đã bắt đầu gặp lỗi này (và những người khác trong nhóm).NoMethodError: không xác định phương pháp `spec 'cho nil: NilClass - active_utils, factory_girl và nhiều đá quý thất bại

Điều này đang xảy ra đối với một số đá quý (những người chỉ định chi nhánh git) và chỉ xảy ra khi chúng tôi tạo lại môi trường (trong âm hộ). Chúng tôi không thay đổi gì cả.

Bất kỳ ý tưởng nào? Xem thêm thông tin sau:

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. 
  • Chạy "gem install active_utils -v '2.0.0'" công trình nhưng bó luôn thất bại.
  • dọn dẹp bộ nhớ cache đá quý, nhưng không giúp

Có vẻ như đó là tất cả các mục trong Gemfile xác định một chi nhánh đã bắt đầu thất bại.

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" 

Trả lời

13

Vì vậy, hóa ra điều này là do nâng cấp gần đây lên RubyGems. Buộc phiên bản trước hoạt động.

gem update --system 2.4.8 
1

Trong khi đã có câu trả lời được chấp nhận, tôi đã gặp phải vấn đề tương tự.

Cuối cùng, nguyên nhân là do tôi đang sử dụng phiên bản trình kết hợp lỗi thời và cập nhật lên phiên bản mới nhất đã sửa nó. Thông tin thêm về lỗi từ đây: https://github.com/bundler/bundler/issues/3560

Lỗi xảy ra trước phiên bản gói 1.9.3.

Bạn có thể cập nhật bundler bằng cách chạy gem install bundler và sau đó xóa các phiên bản cũ bundler qua gem uninstall bundler -v old.bundler.version

Nếu bạn đang sử dụng RVM, tôi khuyên bạn nên cài đặt này trên gemset toàn cầu của phiên bản ruby ​​hiện tại của bạn bằng cách chạy rvm use @global trước khi thực hiện cài đặt.

Các vấn đề liên quan