не могу получить gemfile для обновления пакета

Я новичок в ruby/rails.

Вот мой гемфайл:

source 'https://rubygems.org'
ruby '2.0.0'
#ruby-gemset=railstutorial_rails_4_0

gem 'rails', '4.0.0'

group :development do
  gem 'sqlite3', '1.3.8'
  gem 'ruby-debug-ide'
end

gem 'sass-rails', '4.0.0'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.0'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'
gem 'wash_out', :git => 'git://github.com/inossidabile/wash_out.git'
gem 'haml'
gem "railties", "~> 4.0.0"

group :doc do
  gem 'sdoc', '0.3.20', require: false
end

При обновлении пакета я получаю следующее:

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.rc1)

Проблема с sass-rails должна быть решена, так как я использую ~> правильно? Как я могу одновременно установить и рельсы, и sass-rails?


person Josh Nankin    schedule 17.10.2013    source источник


Ответы (3)


Если вы поместите sass-rails перед rails в свой Gemfile, он будет правильно разрешен.

person Tim Moore    schedule 18.10.2013
comment
Действительно, почему это работает, если я могу использовать только одну версию драгоценного камня за раз, согласно ответу jibender ниже? - person Josh Nankin; 18.10.2013
comment
Я не уверен, что он имеет в виду под своим ответом. Ваш Gemfile выглядит нормально для меня, я думаю, что это ошибка разрешения в Bundler. - person Tim Moore; 19.10.2013
comment
Хотя то, что он сказал, мне понятно. Я выбрал ваш ответ только потому, что это было проще исправить (но я не понимаю, почему это работает). Я могу использовать только одну версию рельсов, верно? А для sass-rails требуется 4.0.1 или выше, тогда как для rails требуется ровно 4.0.0. Так почему же это работает? - person Josh Nankin; 21.10.2013
comment
На самом деле, я только что заметил одно различие между sass-rails 4.0.0 и sass-rails 4.0.1: версия 4.0.0 зависит от 'railties', '>= 4.0.0.beta', '< 5.0', а 4.0.1 зависит от 'railties', '>= 4.0.0', '< 5.0'. Включение «беты» в зависимость позволяет использовать предварительные версии, поэтому она разрешена до 4.0.1.rc1. Когда вы обновляетесь до sass-rails 4.0.1, он больше не включает предварительную версию в свои зависимости, поэтому будут разрешены только выпущенные версии. Так что ответ Джонатана Бендера - лучшее решение. - person Tim Moore; 22.10.2013

Ваша проблема в том, что вы можете использовать только одну версию драгоценного камня за раз. ~> позволит изменять версию только этого драгоценного камня.

Вам нужно изменить версию sass-rails, которую вы требуете, на 4.0.1.

person Jonathan Bender    schedule 18.10.2013

Вы должны обновить следующую строку в вашем Gemfile:

gem 'rails', '4.0.0'

to

gem 'rails', '~> 4.0.0'

а затем запустите bundle update.

person sequielo    schedule 20.11.2013