Nyc*_*e37 1 ruby ruby-on-rails type-mismatch nameerror
平台:Ubuntu 12.10
在我的终端,我正在努力跑 bundle exec rspec spec/models/user_spec.rb
我正在关注学习Web开发:Michael Hartl的Ruby on Rails教程,以测试用户.
我的代码如下:
class User < ActiveRecord::Base
attr_accessible :email, :name
end
Run Code Online (Sandbox Code Playgroud)
我的错误如下所示:
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)
Run Code Online (Sandbox Code Playgroud)
如果您已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>'
Run Code Online (Sandbox Code Playgroud)
与
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
Run Code Online (Sandbox Code Playgroud)
这有时难以追踪,但一个简单的起点是在整个项目中搜索"类用户".