对 Gemfile 的循环依赖

Circular dependency on Gemfile

我在 运行 bundle install:

时遇到这个错误

Your Gemfile requires gems that depend on each other, creating an infinite loop. Please remove gem 'casein' and try again.

当我将 gem countries 添加到 Gemfile 时出现错误。

我认为这是一个奇怪的错误,因为国家和酪蛋白的依赖性非常不同:

Puelos-Macbook:ChataBackend paulo$ gem dependency countries
Gem countries-0.11.4
  currencies (~> 0.4.2)
  i18n_data (~> 0.7.0)
  rspec (>= 3, development)
  yard (>= 0, development)

Puelos-Macbook:ChataBackend paulo$ gem dependency casein
Gem casein-5.0.0.0
  authlogic (= 3.4.2)
  casein (>= 0)
  jquery-rails (>= 0)
  scrypt (= 1.2.1)
  will_paginate (= 3.0.5)

编辑:

为了确定,我从我的 Gemfile 中删除了所有其他 gem:

source 'https://rubygems.org'

gem 'countries'
gem 'casein', '5.0.0'

但错误依旧

哦,抱歉,我第一眼没看懂

casein gem 引用自身:

Puelos-Macbook:ChataBackend paulo$ gem dependency casein
Gem casein-5.0.0.0
  authlogic (= 3.4.2)
  !! NB⇒ casein (>= 0)
  jquery-rails (>= 0)
  scrypt (= 1.2.1)
  will_paginate (= 3.0.5)

1.9 之前允许捆绑包,但现在不允许。您有两个选择:

  1. bundler 降级为 1.8 并重新 运行 bundle install.
  2. 通过删除自引用克隆 casein gem,补丁 casein.gemspec 并提交拉取请求。 https://github.com/spoiledmilk/casein3/blob/master/casein.gemspec#L103

NB 实际上这已经由社区完成了,例如https://github.com/russellquinn/casein 因此,您可能只是通过 gem 'casein', git: 'github.com:russellquinn/casein'.

明确要求该版本

希望对您有所帮助。