使用bundle update gem-name时是否有必要更新Gemfile中的gem行?

时间:2013-11-06 04:32:13

标签: ruby-on-rails rubygems gem bundler

我想更新我的jquery_rails gem,实际版本是3.0.4,以下命令会更新它

bundle update jquery_rails

那么,我的Gemfile怎么样,有必要更新jquery_rails的版本呢? (“我目前在当地工作”)

在我的Gemfile中我有2.2.1版本

gem 'jquery-rails', '2.2.1'

更新

我在我的Gemfile中将gem'jquery-rails','2.2.1'更改为gem'jquery-rails','3.0.4',并且我尝试执行bundle update jquery-rails但是发生错误:

 Bundler could not find compatible versions for gem "railties":
In Gemfile:
rails (= 4.0.0) ruby depends on
  railties (= 4.0.0) ruby

sass-rails (= 4.0.0) ruby depends on
  railties (4.0.1)

2 个答案:

答案 0 :(得分:1)

首先,您应该更新您的gem文件并指定所需的gem版本,然后运行bundle update jquery_rails。

错误告诉你,你有宝石需要不同版本的铁路。尝试将rails的版本更改为4.0.1,将sass-rails更改为4.0.1,将railties更改为4.0.1并通过bundle更新这些gem。

答案 1 :(得分:0)

要直接回答您的问题,在这种情况下,是 需要更新Gemfile中的版本,但并非总是如此。

运行bundle update <gem>将使Bundler找到最新版本的gem及其依赖项,以满足Gemfile的所有要求。由于您已指定特定版本的要求,因此Bundler仅允许该版本。您还可以在Gemfile中指定更灵活的版本:gem 'jquery-rails', '~> 2.2.0'允许其使用任何2.2.x版本,或'~> 2.2'允许任何2.x。

sass-rails的问题是分开的。您可以通过更新到sass-rails 4.0.1来解决此问题。见can't get gemfile to allow for bundle update