Bundler无法为Rails 4.0.0找到gem"railties"的兼容版本

Bri*_*sen 44 gem ruby-on-rails railtie ruby-on-rails-4

我想升级到Rails的4.0.0,和我换的宝石版本sass-railscoffee-rails.我需要在升级到Rails 4之前railscoffee-rails之前解决这个gem冲突.

当我运行时,bundle update这是我得到的输出:

$ bundle update
Updating git://github.com/pilu/web-app-theme.git
Fetching source index from https://rubygems.org/
Resolving dependencies..............
Bundler could not find compatible versions for gem "railties":
  In Gemfile:
    rails (= 4.0.0) ruby depends on
      railties (= 4.0.0) ruby

    coffee-rails (= 4.0.0) ruby depends on
      railties (4.0.0.rc2)
Run Code Online (Sandbox Code Playgroud)

我的Gemfile:

source 'https://rubygems.org'

gem 'rails', '4.0.0'

gem 'cancan'
gem 'client_side_validations'
gem 'devise', '~> 1.5.3'
gem 'dynamic_form'
gem 'execjs'
gem 'haml'
gem 'httparty'
gem 'jquery-rails'
gem 'mysql2'
gem 'paperclip', '~> 2.4'
gem 'prawn'
gem 'rails3-jquery-autocomplete'
gem 'rake', '0.9.2'
gem 'remotipart', '~> 1.0'
gem 'simple_datatables'
gem 'therubyracer'
gem 'validates_timeliness', '~> 3.0.2'
gem 'will_paginate', '~> 3.0'

gem 'turbolinks'
gem 'jquery-turbolinks'

gem 'noty-rails'

gem 'font-awesome-rails'

gem 'socket.io-rails'

gem 'attr_encrypted'

gem 'bullet', :group => 'development'

#temp for demo.managetherapy.com
#gem 'faker'

group :test do
  gem 'capybara'
  gem 'cucumber-rails', :require => false
  gem 'database_cleaner'
  gem 'factory_girl_rails'
#  gem 'faker'
  gem 'guard-rspec'
  gem 'selenium-webdriver', '2.7.0'
  gem 'webrat'
end

group :development, :test do
  gem 'faker'
  gem 'haml-rails'
  gem 'hpricot'
  gem 'rspec-rails'
  gem 'ruby_parser'
  #gem 'web-app-theme', '~> 0.8.0'
  gem 'web-app-theme', :git =>'git://github.com/pilu/web-app-theme.git'
end

gem 'sass-rails', '4.0.0'
gem 'compass-rails', '1.0.3'
gem 'coffee-rails', '4.0.0'
gem 'uglifier', '>= 2.1.1'
gem 'bootstrap-sass-rails'

# Use unicorn as the web server
#gem 'unicorn'

# Deploy with Capistrano
gem 'capistrano'
gem 'rvm-capistrano'

gem 'passenger'
Run Code Online (Sandbox Code Playgroud)

nat*_*vda 69

此外,bundle update只允许您一次更新一个宝石,如果您要更新,这很难,并且必须同时更新Rails 4大量宝石.

我通过删除Gemfile.lock和执行来解决这个问题bundle install.

这当然是假设您在开始时没有冲突的显式gem版本Gemfile.因此,如果失败,请从Gemfile中删除版本号.

  • 这对我有用:我必须补充一点,如果一个特定的宝石引起问题,请更改〜> for = =(例如gem'coffee-rails','〜> 4.0.0'用于gem'咖啡 - rails','> = 4.0.0')并按照nathanvda步骤操作 (7认同)
  • `〜>`会更新,但只有补丁级别(所以根据semver:只有非破坏性的变化).更改为`> =`将更新到最新版本(考虑所有其他依赖项/约束),实际上只是说明了所需的最小版本(从您的结尾).所以是的:这可能是最需要的. (6认同)
  • This works for me. Delete `Gemfile.lock` and everything is as smooth as hell :D. (2认同)

Iva*_*der 23

只需从Gemfile中删除gem版本(coffee-rails和sass-rails)并运行bundle update


Mik*_*del 9

你有一个过时的Devise版本,使用Rails 4兼容

gem 'devise', '~> 3.0.0.rc'
Run Code Online (Sandbox Code Playgroud)

coffee-rails改为

gem 'coffee-rails', '~> 4.0.0'
Run Code Online (Sandbox Code Playgroud)

并尝试做

bundle update coffee-rails
Run Code Online (Sandbox Code Playgroud)


and*_*ape 8

先跑gem update rails,然后bundle update


pen*_*ner 7

你有Rails不支持的宝石4.注释掉除了Rails 4之外的所有宝石,并在运行bundle install之后一次取消注释它们以找到罪魁祸首.您可能需要撤消某些版本锁定.