21

创建一个全新的 rails 应用程序之后,按照官方 rails 博客文章,尝试将应用程序转换为 rails 3.2.0.rc2 会产生以下结果

Updated Gemfile to depend on rails ~> 3.2.0.rc2
    gem 'rails', '~>3.2.0.rc2'
Updated Gemfile to depend on sass-rails ~> 3.2.3
    gem 'sass-rails',   '~> 3.2.3'

$ bundle install
Fetching source index for http://rubygems.org/
Bundler could not find compatible versions for gem "activesupport":
  In snapshot (Gemfile.lock):
    activesupport (3.1.1)

  In Gemfile:
    rails (~> 3.2.0.rc2) ruby depends on
      activesupport (= 3.2.0.rc2) ruby

Running `bundle update` will rebuild your snapshot from scratch, using 
only the gems in your Gemfile, which may resolve the conflict.

$bundle update
Fetching source index for http://rubygems.org/
Bundler could not find compatible versions for gem "railties":
  In Gemfile:
    coffee-rails (~> 3.1.1) ruby depends on
      railties (~> 3.1.0) ruby

    rails (~> 3.2.0.rc2) ruby depends on
      railties (3.2.0.rc2)

究竟是什么问题?

系统规格:

Mac OS 10.7.2、Xcode 4.2.1、rvm 1.10.1 使用 ruby​​ 1.9.3p0(2011-10-30 修订版 33570)[x86_64-darwin11.2.0]

4

4 回答 4

64

我通过删除锁rm Gemfile.lock并再次运行来解决它bundle install

$ rm Gemfile.lock
$ bundle install
Using rake (0.9.2.2) 
Using i18n (0.6.0) 
Using multi_json (1.0.4) 
Using activesupport (3.2.0.rc2) 
Using builder (3.0.0) 
Using activemodel (3.2.0.rc2) 
Using erubis (2.7.0) 
Using journey (1.0.0) 
Using rack (1.4.0) 
Using rack-cache (1.1) 
Using rack-test (0.6.1) 
Using hike (1.2.1) 
Using tilt (1.3.3) 
Using sprockets (2.1.2) 
Using actionpack (3.2.0.rc2) 
Using mime-types (1.17.2) 
Using polyglot (0.3.3) 
Using treetop (1.4.10) 
Using mail (2.3.0) 
Using actionmailer (3.2.0.rc2) 
Using arel (3.0.0) 
Using tzinfo (0.3.31) 
Using activerecord (3.2.0.rc2) 
Using activeresource (3.2.0.rc2) 
Using bundler (1.0.21) 
Using coffee-script-source (1.2.0) 
Using execjs (1.2.13) 
Using coffee-script (2.2.0) 
Using rack-ssl (1.3.2) 
Using json (1.6.4) 
Using rdoc (3.12) 
Using thor (0.14.6) 
Using railties (3.2.0.rc2) 
Using coffee-rails (3.2.1) 
Using jquery-rails (2.0.0) 
Using rails (3.2.0.rc2) 
Using sass (3.1.12) 
Using sass-rails (3.2.3) 
Using sqlite3 (1.3.5) 
Using uglifier (1.2.2) 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

这是解决问题的一种非常蛮力的方法。如果这是一个已建立的项目,您可能会在删除后遇到其他问题,Gemfile.lock因为依赖版本不再锁定。但是,如果这是一个新项目,那么采用这种方法不太可能会遇到问题。

于 2012-01-17T05:14:19.713 回答
2

另外sass-rails,你也需要提升coffee-rails你所依赖的版本(3.2.1应该这样做)

于 2012-01-13T23:53:15.453 回答
1

如果您的捆绑程序版本与 Gemfile.lock 最后一行中的 BUNDLED WITH 不同,则只有在将新 gem 添加到 Gemfile 后,它可能会出现“找不到 gem GEMNAME 的兼容版本”。

于 2017-05-31T07:22:09.120 回答
0

像这样去:gem 'activeadmin', github: 'gregbell/active_admin'在 da gemfile. 对 Rails 4 的活动管理员支持合并到主分支中 与 Rails 4 一起活动管理员安装

于 2013-11-18T11:16:32.810 回答