1

プラットフォーム: Ubuntu 12.10

私の端末では、実行しようとしていますbundle exec rspec spec/models/user_spec.rb

ユーザーをテストするために、Michael Hartl による Learn Web Development: the Ruby on Rails チュートリアルに従っています。

私のコードは次のとおりです。

class User < ActiveRecord::Base      
    attr_accessible :email, :name  
end

私のエラーを以下に示します。

root@NIyi-PC:/usr/sample_app# bundle exec rspec spec/models/user_spec.rb 
Rack::File headers parameter replaces cache_control after Rack 1.5.
/usr/sample_app/app/models/user.rb:13:in `<top (required)>': superclass mismatch for class User (TypeError)
4

1 に答える 1

5

class Userこのエラーは、コードの他の場所で最初に宣言した場合に発生します。

1.9.3-p374 :001 > class Bar; end
 => nil
1.9.3-p374 :002 > class Foo; end # first declaration, no superclass
 => nil
1.9.3-p374 :003 > class Foo < Bar; end # attempting to declare superclass later
TypeError: superclass mismatch for class Foo
    from (irb):3
    from /Users/Mark/.rvm/rubies/ruby-1.9.3-p374/bin/irb:16:in `<main>'

対。

1.9.3-p374 :001 > class Bar; end
 => nil
1.9.3-p374 :002 > class Foo < Bar; end # first declaration, including superclass
 => nil
1.9.3-p374 :003 > class Foo; end # don't have to mention the superclass later
 => nil

これを追跡するのが難しい場合もありますが、簡単な出発点は、プロジェクト全体で「class User」を検索することです。

于 2013-03-21T14:53:21.043 に答える