停用Gem - “你已经激活rake 0.9.3.beta.1,但我的Gemfile需要rake 0.9.2”

时间:2011-08-15 00:38:46

标签: ruby-on-rails ruby gem rake

我正在尝试运行迁移,但我不断收到错误消息:

rake aborted! Undefined method prerequisite for nil:NilClass.

似乎我以某种方式激活了名为rake 0.9.3.beta.1的宝石 - 但是我已经更改了宝石bundle install并运行bundle show rake,它显示已安装rake 0.9.2。我第一次使用Git,所以我认为它可能与应用程序仍然使用rake的beta版本有关 - 但我已经完成了推送并且它显示了gemfile已经更新。

当我查看gem库时,我只能看到rake 0.9.2版本。我应该在哪里看?

我也有一个Rails:Railtie弃用警告 - 但我认为这与我的迁移问题没有任何关系。它告诉我在config / application.rb而不是Railtie中使用config.app_generators - 但我在文件中看不到。

这是Config / application.rb文件

require File.expand_path('../boot', __FILE__)

# Pick the frameworks you want:
 require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
 require "sprockets/railtie"
Bundler.require *Rails.groups(:assets) if defined?(Bundler)

module CrowdshareApp
  class Application < Rails::Application
  config.encoding = "utf-8"
config.filter_parameters += [:password]
config.assets.enabled = true
  end
end

My Gemfile如下所示:

source 'http://rubygems.org'

gem 'rails', '3.1.0.rc5'
gem 'sqlite3' 
group :assets do
  gem 'sass-rails', "~> 3.1.0.rc"
  gem 'coffee-rails', "~> 3.1.0.rc"
  gem 'uglifier'
end

gem 'jquery-rails'
group :development do
  gem   'rspec-rails', '2.0.0.beta.18'
end

group :test do
  gem 'rspec', '2.0.0.beta.18'
end

和Gemfile.lock文件具有以下内容:

GEM
  remote: http://rubygems.org/
  specs:
    actionmailer (3.1.0.rc5)
      actionpack (= 3.1.0.rc5)
      mail (~> 2.3.0)
    actionpack (3.1.0.rc5)
      activemodel (= 3.1.0.rc5)
      activesupport (= 3.1.0.rc5)
      builder (~> 3.0.0)
      erubis (~> 2.7.0)
      i18n (~> 0.6)
      rack (~> 1.3.1)
      rack-cache (~> 1.0.2)
      rack-mount (~> 0.8.1)
      rack-test (~> 0.6.0)
      sprockets (~> 2.0.0.beta.12)
    activemodel (3.1.0.rc5)
      activesupport (= 3.1.0.rc5)
      bcrypt-ruby (~> 2.1.4)
      builder (~> 3.0.0)
      i18n (~> 0.6)
    activerecord (3.1.0.rc5)
      activemodel (= 3.1.0.rc5)
      activesupport (= 3.1.0.rc5)
      arel (~> 2.1.4)
      tzinfo (~> 0.3.29)
    activeresource (3.1.0.rc5)
      activemodel (= 3.1.0.rc5)
      activesupport (= 3.1.0.rc5)
    activesupport (3.1.0.rc5)
      multi_json (~> 1.0)
    arel (2.1.4)
    bcrypt-ruby (2.1.4-x86-mingw32)
    builder (3.0.0)
    coffee-rails (3.1.0.rc.5)
      actionpack (~> 3.1.0.rc1)
      coffee-script (>= 2.2.0)
      railties (~> 3.1.0.rc1)
      sprockets (>= 2.0.0.beta.9)
    coffee-script (2.2.0)
      coffee-script-source
      execjs
    coffee-script-source (1.1.2)
    diff-lcs (1.1.2)
    erubis (2.7.0)
    execjs (1.2.4)
      multi_json (~> 1.0)
    hike (1.2.0)
    i18n (0.6.0)
    jquery-rails (1.0.13)
      railties (~> 3.0)
      thor (~> 0.14)
    mail (2.3.0)
      i18n (>= 0.4.0)
      mime-types (~> 1.16)
      treetop (~> 1.4.8)
    mime-types (1.16)
    multi_json (1.0.3)
    nokogiri (1.5.0-x86-mingw32)
    polyglot (0.3.2)
    rack (1.3.2)
    rack-cache (1.0.2)
      rack (>= 0.4)
    rack-mount (0.8.2)
      rack (>= 1.0.0)
    rack-ssl (1.3.2)
      rack
    rack-test (0.6.1)
      rack (>= 1.0)
    rails (3.1.0.rc5)
      actionmailer (= 3.1.0.rc5)
      actionpack (= 3.1.0.rc5)
      activerecord (= 3.1.0.rc5)
      activeresource (= 3.1.0.rc5)
      activesupport (= 3.1.0.rc5)
      bundler (~> 1.0)
      railties (= 3.1.0.rc5)
    railties (3.1.0.rc5)
      actionpack (= 3.1.0.rc5)
      activesupport (= 3.1.0.rc5)
      rack-ssl (~> 1.3.2)
      rake (>= 0.8.7)
      rdoc (~> 3.4)
      thor (~> 0.14.6)
    rake (0.9.2)
    rdoc (3.9.2)
    rspec (2.0.0.beta.18)
      rspec-core (= 2.0.0.beta.18)
      rspec-expectations (= 2.0.0.beta.18)
      rspec-mocks (= 2.0.0.beta.18)
    rspec-core (2.0.0.beta.18)
    rspec-expectations (2.0.0.beta.18)
      diff-lcs (>= 1.1.2)
    rspec-mocks (2.0.0.beta.18)
    rspec-rails (2.0.0.beta.18)
      rspec (>= 2.0.0.beta.14)
      webrat (>= 0.7.0)
    sass (3.1.7)
    sass-rails (3.1.0.rc.5)
      actionpack (~> 3.1.0.rc1)
      railties (~> 3.1.0.rc1)
      sass (>= 3.1.4)
      sprockets (>= 2.0.0.beta.9)
    sprockets (2.0.0.beta.13)
      hike (~> 1.2)
      rack (~> 1.0)
      tilt (!= 1.3.0, ~> 1.1)
    sqlite3 (1.3.4-x86-mingw32)
    thor (0.14.6)
    tilt (1.3.2)
    treetop (1.4.10)
      polyglot
      polyglot (>= 0.3.1)
    tzinfo (0.3.29)
    uglifier (1.0.0)
      execjs (>= 0.3.0)
      multi_json (>= 1.0.2)
    webrat (0.7.3)
      nokogiri (>= 1.2.0)
      rack (>= 1.0)
      rack-test (>= 0.5.3)

PLATFORMS
  x86-mingw32

DEPENDENCIES
  coffee-rails (~> 3.1.0.rc)
  jquery-rails
  rails (= 3.1.0.rc5)
  rspec (= 2.0.0.beta.18)
  rspec-rails (= 2.0.0.beta.18)
  sass-rails (~> 3.1.0.rc)
  sqlite3
  uglifier

3 个答案:

答案 0 :(得分:18)

尝试删除Gemfile.lock文件并再次运行bundle install

答案 1 :(得分:5)

另一种对我有用的方法是,转到Gemfile.lock并将Rake版本从0.9.2.2更改为0.9.3.beta.1。

答案 2 :(得分:4)

我遇到了同样的问题,并在以下链接的帮助下解决了。 他们可以帮助理解有关此特定问题的一些概念,以及如何以及为何使用bundle exec rake db:migrate

您还可以选择使用gem uninstall rake,然后选择要删除的版本。

Read Before installing rails 3.1

Rake 0.9 and gem version constraints by David Chelimsky