Rails 4.0.0にアップグレードしようとしていますが、sass-Rails
とcoffee-Rails
のgemバージョンを変更しました。 Railsにアップグレードする前に、Rails
とcoffee-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)
私の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'
また、bundle update
では一度に1つのgemのみを更新できますが、Rails 4
に更新する場合は非常に難しく、多くのgemを同時に更新する必要があります。
Gemfile.lock
を削除してbundle install
を実行することでこれを解決しました。
もちろん、これはGemfile
に最初から競合する明示的なgemバージョンがないことを前提としています。そのため、これが失敗した場合は、Gemfileからバージョン番号を削除します。
Gemfileからgemバージョン(coffee-Railsおよびsass-Rails)を削除して、バンドル更新を実行するだけです
Deviseの古いバージョンがあります。Rails 4 compatible
gem 'devise', '~> 3.0.0.rc'
また、coffee-Rails
に
gem 'coffee-Rails', '~> 4.0.0'
そしてやってみて
bundle update coffee-Rails
実行gem update Rails
まず bundle update
Rails 4.でサポートされていないgemがあります。Rails 4を除くすべてのgemをコメントアウトし、バンドルインストールの実行後に1つずつコメント解除します。バージョンロックの一部を元に戻す必要がある場合があります。
Gemfile.lock
ファイルbundle install
すべて正常に動作します。 :)