简体   繁体   English

奇怪的Ruby on Rails错误

[英]Weird Ruby on Rails Error

I ran bundle install and then rails s the other day and got the following error: 我先运行了bundle install ,然后rails s一天运行了rails s ,并收到以下错误消息:

/Users/helixed/.rvm/gems/ruby-1.9.2-p180@rails31/gems/activerecord-1.6.0/lib/active_record/support/clean_logger.rb:5:in `remove_const': constant Logger::Format not defined (NameError)

I've read I can fix this by going into the clean_logger.rb file and commenting out that line, but I've never touched that file and I don't want to edit it if I can help it. 我读过可以通过进入clean_logger.rb文件并注释掉该行来解决此问题,但是我从未接触过该文件,并且如果可以帮助我也不想编辑它。 Does anybody know what this file does or how I can fix this? 有人知道此文件的作用或如何解决吗? I'm using Ruby 1.9.2 and Rails 3.1.0.rc4. 我正在使用Ruby 1.9.2和Rails 3.1.0.rc4。

Update 更新资料

Here's my Gemfile: 这是我的Gemfile:

source 'http://rubygems.org'

gem 'rails'

gem 'sqlite3'

# Asset template engines
gem 'sass-rails', "~> 3.1.0.rc"
gem 'coffee-script'
gem 'uglifier'

# JavaScript
gem 'jquery-rails'

# CSS
gem 'compass', :git => "https://github.com/chriseppstein/compass.git", :branch => "rails31"

# Authentication
gem 'authlogic'

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

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'

# pagination
gem 'will_paginate'

group :development do
  gem 'rspec-rails'
  gem 'annotate-models'
  gem 'rb-fsevent'#, :require => (RUBY_PLATFORM =~ /darwin/i)
  gem 'guard-rspec'
  gem 'faker'
  gem 'word_salad'
end

group :test do
  # Pretty printed test output
  gem 'turn', :require => false
  gem 'rspec'
  gem 'webrat'
  gem 'factory_girl_rails'
end

group :deployment do
  gem 'heroku'
end

Update 2 更新2

As per the requests in the comments: 根据评论中的要求:

.rvmrc .rvmrc

(empty)

rvm info : rvm info

ruby-1.9.2-p180@rails31:

  system:
    uname:       "Darwin Big.local 10.7.0 Darwin Kernel Version 10.7.0: Sat Jan 29 15:17:16 PST 2011; root:xnu-1504.9.37~1/RELEASE_I386 i386"
    bash:        "/bin/bash => GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)"
    zsh:         "/bin/zsh => zsh 4.3.9 (i386-apple-darwin10.0)"

  rvm:
    version:      "rvm 1.6.20 by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/]"

  ruby:
    interpreter:  "ruby"
    version:      "1.9.2p180"
    date:         "2011-02-18"
    platform:     "x86_64-darwin10.7.0"
    patchlevel:   "2011-02-18 revision 30909"
    full_version: "ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.7.0]"

  homes:
    gem:          "/Users/helixed/.rvm/gems/ruby-1.9.2-p180@rails31"
    ruby:         "/Users/helixed/.rvm/rubies/ruby-1.9.2-p180"

  binaries:
    ruby:         "/Users/helixed/.rvm/rubies/ruby-1.9.2-p180/bin/ruby"
    irb:          "/Users/helixed/.rvm/rubies/ruby-1.9.2-p180/bin/irb"
    gem:          "/Users/helixed/.rvm/rubies/ruby-1.9.2-p180/bin/gem"
    rake:         "/Users/helixed/.rvm/gems/ruby-1.9.2-p180@rails31/bin/rake"

  environment:
    PATH:         "/Users/helixed/.rvm/gems/ruby-1.9.2-p180@rails31/bin:/Users/helixed/.rvm/gems/ruby-1.9.2-p180@global/bin:/Users/helixed/.rvm/rubies/ruby-1.9.2-p180/bin:/Users/helixed/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin"
    GEM_HOME:     "/Users/helixed/.rvm/gems/ruby-1.9.2-p180@rails31"
    GEM_PATH:     "/Users/helixed/.rvm/gems/ruby-1.9.2-p180@rails31:/Users/helixed/.rvm/gems/ruby-1.9.2-p180@global"
    MY_RUBY_HOME: "/Users/helixed/.rvm/rubies/ruby-1.9.2-p180"
    IRBRC:        "/Users/helixed/.rvm/rubies/ruby-1.9.2-p180/.irbrc"
    RUBYOPT:      ""
    gemset:       "rails31"

gem list : gem list

*** LOCAL GEMS ***

actionmailer (3.1.0.rc4, 0.6.1)
actionpack (3.1.0.rc4)
activemodel (3.1.0.rc4)
activerecord (3.1.0.rc4, 1.6.0)
activeresource (3.1.0.rc4)
activesupport (3.1.0.rc4)
annotate-models (1.0.4)
ansi (1.2.5)
arel (2.1.1)
authlogic (3.0.3, 2.1.6)
bcrypt-ruby (2.1.4)
blueprint-rails (0.1.1)
builder (3.0.0)
bundler (1.0.15)
chunky_png (1.2.0)
coffee-script (2.2.0)
coffee-script-source (1.1.1)
compass (0.11.3)
compass-960-plugin (0.10.4)
configuration (1.3.1)
diff-lcs (1.1.2)
erubis (2.7.0)
execjs (1.2.0)
factory_girl (1.3.3)
factory_girl_rails (1.0.1)
faker (0.9.5)
fssm (0.2.7)
guard (0.4.2)
guard-rspec (0.4.0)
heroku (2.3.4, 2.3.3)
hike (1.1.0)
i18n (0.6.0)
jquery-rails (1.0.12, 1.0.11)
launchy (0.4.0)
mail (2.3.0)
mime-types (1.16)
multi_json (1.0.3)
nokogiri (1.4.6)
polyglot (0.3.1)
rack (1.3.0)
rack-cache (1.0.2)
rack-mount (0.8.1)
rack-ssl (1.3.2)
rack-test (0.6.0)
rails (3.1.0.rc4, 0.9.5)
railties (3.1.0.rc4)
rake (0.9.2, 0.8.7)
rb-fsevent (0.4.0)
rdoc (3.6.1)
rest-client (1.6.3)
rspec (2.6.0)
rspec-core (2.6.4)
rspec-expectations (2.6.0)
rspec-mocks (2.6.0)
rspec-rails (2.6.1)
sass (3.1.3)
sass-rails (3.1.0.rc.3, 3.1.0.rc.2)
sprockets (2.0.0.beta.10)
sqlite3 (1.3.3)
term-ansicolor (1.0.5)
thor (0.14.6)
tilt (1.3.2)
treetop (1.4.9)
turn (0.8.2)
tzinfo (0.3.28)
uglifier (1.0.0, 0.5.4)
webrat (0.7.3)
will_paginate (2.3.15)
word_salad (2.0.0)

Additionally, I'd also nuke your Gemfile.lock , and specify which version of Rails you're using in your Gemfile: 此外,我还要Gemfile.lock您的Gemfile.lock ,并在您的Gemfile中指定您使用的Rails版本:

gem "rails", "3.1.0.rc4"

And then re-bundle everything by running bundle 然后通过运行bundle重新捆绑所有内容

For some reason, you are installing an ancient version of activerecord which is failing. 出于某种原因,您正在安装活动记录的旧版本,但失败了。

What I would do is first check your Gemfile.lock file to see what gem is specifying an old version of activerecord. 我要做的是首先检查您的Gemfile.lock文件,查看哪些gem指定了activerecord的旧版本。 (Do a search in that file.) If you can, comment out that gem which uses the old activerecord from the Gemfile or use a more modern version or replacement of that gem if you need it. (在该文件中进行搜索。)如果可以,请注释掉使用Gemfile中旧的activerecord的gem,或者在需要时使用更现代的版本或替换该gem。 (Nothing jumps out at me from a cursory examination of your Gemfile, maybe you installed some old stuff earlier and removed it?) (从对您的Gemfile的粗略检查中,没有什么让我惊讶的,也许您早些安装了一些旧东西并将其删除了?)

If you don't see version 1.6 of activerecord specified in the Gemfile.lock , I'd blow up your rvm gemset and install again from the command line. 如果您没有在Gemfile.lock看到指定的activerecord 1.6版,我将炸毁您的rvm gemset并从命令行重新安装。 You probably have some old stuff in there for whatever reason. 无论出于何种原因,您都可能在其中有一些旧东西。 In your project directory use the following commands: 在项目目录中,使用以下命令:

$ rvm gemset empty rails31

$ rvm gemset use rails31

$ gem install bundler

$ bundle install

Good luck! 祝好运!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM