2010-08-14 28 views
0
My env: ruby-1.9.2-preview3; rails-3.0.0.beta3 

class PostFather < ActiveRecord::Base 
    def self.inherited(subclass) 
    end 
end 

class Post < PostFather 
end 

在控制檯:鐵軌中的錯誤?關於模型繼承


> Post.new # => TypeError: can't dup NilClass 
> Post.all # => TypeError: can't dup NilClass 
> Post.scoped # => TypeError: can't dup NilClass 

你可以自己嘗試一下;

回答

1

ActiveRecord的使用繼承的方法,你需要超級調用,這樣ActiveRecord的東西仍然運行:

class PostFather < ActiveRecord::Base 
    def self.inherited(subclass) 
    super(subclass) 
    end 
end