-1

..................................................... ……

4

3 回答 3

1

由于版本要求,您需要同时更新两个 gem。

尝试: bundle update rspec-rails rspec-core

编辑:

感谢您发布您的 Gemfile。真正的问题是你已经锁定了你的 rspec-rails 版本。

换行:

gem 'rspec-rails', '2.1.0'

gem 'rspec-rails', '~> 2.12.2'

之后bundle update rspec-rails 应该可以完美运行。

于 2013-02-06T21:39:52.283 回答
1

在没有看到 Gemfile 的情况下很难准确回答,但该消息表明您在 Gemfile 中依赖于 rspec-core 的 2.10.1 版本,但您还依赖于依赖于 rspec-core 的 rspec-rails 2.1.0 ~> 2.1.0,这意味着 rspec-core 版本 2.1.0-2.1.x。使用~>和 补丁级别版本号,补丁版本(最后一个数字)可以与指定的相同或更高,但不能是次要版本(第二个数字)或主要版本(第一个数字)。

修复方法是,如果您在 Gemfile 中定义了 rspec-rails,则只需从 Gemfile 中删除 rspec/rspec-core,并且 rspec-core 将由 rspec-rails 加载。在撰写本文时 (2013-02-06),最新的 rspec-rails 是 2.12.2,因此您可能希望使用:gem 'rspec-rails', '~> 2.12.2',然后更新您的测试以使用最新的语法。这样你是最新的,但如果你以后使用bundle update,如果新版本是 2.12.3 或更高版本,它会更新,但不会更新到 2.13.x 或更高版本,因为该版本可能与你的测试。

有关更多信息,请阅读:

于 2013-02-06T21:45:35.430 回答
0

@Daniel Evan 的回答应该对你有用,但要解释你问题的下一部分......

bundle install 将使用您当前的 Gemfile.lock 来安装 gem。Gemfile.lock 会在您第一次进行捆绑安装时生成,并在您进行捆绑更新时进行更新。所以,如果你做一个

 bundle update 

它将使用新生成的依赖树更新您的 Gemfile.lock。这应该可以解决您的问题。

于 2013-02-06T22:29:20.163 回答