2010-12-19 54 views
9

我一直在使用黄瓜没有问题的Rails 3一段时间,但一大堆后今天修修补补(包括宝石清理),我收到以下错误,每当我跑“黄瓜功能”Rails 3 /黄瓜问题:“...已激活的构建器3.0.0,但您的Gemfile需要构建器2.1.2”

您已经激活了建设者 3.0.0,但你的Gemfile需要建设者2.1.2。考虑使用软件包 exec。 (Gem :: LoadError)

试过它在我的机器上的多个rails项目 - 所有都受影响。不太清楚如何解决这个问题 - 尝试安装2.1.2 &在gemfile中指定它,但没有喜悦。

“bundle exec cucumber features”确实有效,但它似乎不能很好地与自动测试搭配使用。

关于我做了什么(以及更好的如何解决它)的任何建议非常感谢。

回答

17

它看起来像你的宝石清理后,建设者已被删除,然后安装最新版本(3.0.0)。但rails3和其他一些宝石需要〜> 2.1.2,这意味着构建器版本应该> = 2.1.2和< 3.0.0。所以你需要从你的系统宝石中删除3.0.0:

gem uninstall builder 

如果需要使用sudo

然后在您的项目:

bundle install 

注:如果你已经把手动构建器到你的Gemfile,请确保你把〜> 2.1.2。否则打捆将尝试安装最新的稳定版本(3.0.0),这是不符合轨道和其他流行的宝石的当前版本不兼容:

gem "builder", "~> 2.1.2" 

我会建议你存储在每个项目不同的地点宝石:

bundle install --path .gems 

在这种情况下,您可以用您的系统宝石完成您想要的任何事情,并且可以降低像现在这样的风险。

6

为什么不使用更简单的方法?

bundle exec cucumber features

我曾与制造商和其他一些宝石同样的问题。尝试使用“宝石unistall”的方式,但后来我得到一个错误,说我需要更新的宝石。所以我陷入了僵局。

使用上述命令它的工作...

+0

这似乎某种程度上是一个更好的答案......那岂不是更好,虽然,使黄瓜本身能够识别Gemfile.lock'的',所以一仍然可以使用其他命令行*和*在系统上安装3.0.0?在某处有'require'bundler/setup''似乎是正确的方法 - 按http://gembundler.com/rationale.html#setting-up-your-application-to-use-bundler - - 如果有人想向https://github.com/aslakhellesoy/cucumber提交补丁,请执行。 :)如果在我准备提交拉我的请求的时候我还没有完成,我会这样做。 – lindes 2011-02-18 10:44:04

相关问题