2010-12-19 53 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

相關問題