..................................................... ……
3 回答
由于版本要求,您需要同时更新两个 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
应该可以完美运行。
在没有看到 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 或更高版本,因为该版本可能与你的测试。
有关更多信息,请阅读:
- 宝石版本:http ://docs.rubygems.org/read/chapter/16#page74
- 捆绑器文档: http: //gembundler.com/
@Daniel Evan 的回答应该对你有用,但要解释你问题的下一部分......
bundle install 将使用您当前的 Gemfile.lock 来安装 gem。Gemfile.lock 会在您第一次进行捆绑安装时生成,并在您进行捆绑更新时进行更新。所以,如果你做一个
bundle update
它将使用新生成的依赖树更新您的 Gemfile.lock。这应该可以解决您的问题。