Rails 3/Cucumber问题:"...已激活构建器3.0.0,但您的Gemfile需要构建器2.1.2"

Pla*_*Ton 9 ruby-on-rails builder cucumber

我已经使用黄瓜毫无困难地使用Rails 3了一段时间,但是经过今天的一大堆修补(包括宝石清理),每当我运行"黄瓜功能"时,我都会收到以下错误

您已经激活了构建器3.0.0,但您的Gemfile需要构建器2.1.2.考虑使用bundle exec.(宝石:: LoadError)

在我的机器上的多个铁轨项目中尝试过 - 所有这些都受到影响.不太确定如何解决这个问题 - 尝试安装2.1.2并在gemfile中指定它,但没有快乐.

"捆绑exec黄瓜功能"确实有效,但它似乎与自动测试没有很好的配合.

关于我所做的事情(以及更好的解决方法)的任何建议都非常感激.

小智 17

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

gem uninstall builder
Run Code Online (Sandbox Code Playgroud)

sudo如果需要使用.

然后在你的项目中:

bundle install
Run Code Online (Sandbox Code Playgroud)

注意:如果您已将手动构建器放入Gemfile中,请确保放入〜> 2.1.2.否则,bundler将尝试安装最新的稳定版本(3.0.0),这与当前版本的rails和其他流行宝石不兼容:

gem "builder", "~> 2.1.2"
Run Code Online (Sandbox Code Playgroud)

我建议你为每个项目在不同的位置存储宝石:

bundle install --path .gems
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您可以使用系统宝石完成所需的一切,这样可以降低像现在这样的情况.


小智 6

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

bundle exec cucumber features

我和建造者和其他一些宝石有同样的问题.尝试使用"gem unistall"方式,但后来我得到一个错误,说我需要更新的宝石.所以我陷入僵局.

用上面的命令它起作用了......