【问题标题】:Rails 3/Cucumber problem: "...already activated builder 3.0.0, but your Gemfile requires builder 2.1.2"Rails 3/Cucumber 问题:“...已经激活了 builder 3.0.0,但您的 Gemfile 需要 builder 2.1.2”
【发布时间】:2011-05-27 22:18:56
【问题描述】:

我在 Rails 3 上使用 cucumber 已经有一段时间了,但是今天经过一大堆修补(包括 gem 清理),每当我运行“cucumber features”时都会收到以下错误

您已经激活了构建器 3.0.0,但您的 Gemfile 需要 builder 2.1.2。考虑使用捆绑 执行。 (Gem::LoadError)

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

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

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

【问题讨论】:

    标签: ruby-on-rails cucumber builder


    【解决方案1】:

    看起来在您的 gem 清理之后,构建器已被删除,然后安装了最新版本 (3.0.0)。但是 rails3 和其他一些 gem 需要 ~> 2.1.2,这意味着构建器版本应该 >= 2.1.2 并且

    gem uninstall builder
    

    如果需要,请使用sudo

    然后在你的项目中:

    bundle install
    

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

    gem "builder", "~> 2.1.2"
    

    我建议您将 gem 存储在每个项目的不同位置:

    bundle install --path .gems
    

    在这种情况下,您可以使用系统 gem 做任何您想做的事情,并且会降低您现在遇到的情况的风险。

    【讨论】:

      【解决方案2】:

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

      bundle exec cucumber features

      我对 builder 和其他一些 gem 有同样的问题。尝试使用“gem unistall”方式,但后来我收到一个错误,说我需要更新的 gem。所以我陷入了僵局。

      用上面的命令就可以了...

      【讨论】:

      • 这似乎是一个更好的答案......不过,让黄瓜天生知道Gemfile.lock不是更好,所以仍然可以使用另一个命令行并且 系统上是否安装了 3.0.0?将require 'bundler/setup' 放在某处似乎是正确的方法——根据gembundler.com/…——如果有人想向github.com/aslakhellesoy/cucumber 提交补丁,请这样做。 :) 如果在我准备提交我正在做的其他事情的拉取请求时还没有完成,我会的。
      猜你喜欢
      • 2023-03-29
      • 2014-06-10
      • 2011-08-30
      • 1970-01-01
      • 1970-01-01
      • 2017-08-29
      • 2011-09-07
      • 1970-01-01
      • 2011-09-13
      相关资源
      最近更新 更多