我正在尝试在我的 Rails 应用程序中为 User 模型及其子类 Member、Subscriber 和 Staff 设置单表继承。
我有每个模型文件:user.rb、member.rb 等
定义了用户模型:class User < ActiveRecord::Base; end;
我将其他模型子类化为:class Member < User; end;
等等。
在我的用户表中,我有每个类需要的所有字段以及类型字段。现在,当我转到控制台并尝试创建说成员或订阅者的新实例时,我收到以下错误:
TypeError: can't dup NilClass
from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.4/lib/active_record/base.rb:2184:in 'dup'
from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.4/lib/active_record/base.rb:2184:in 'scoped_methods'
from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.4/lib/active_record/base.rb:2188:in 'current_scoped_methods'
from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.4/lib/active_record/base.rb:2171:in 'scoped?'
from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.4/lib/active_record/base.rb:2439:in 'send'
from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.4/lib/active_record/base.rb:2439:in 'initialize'
from (irb):6:in 'new'
from (irb):6
Rails 知道存在子类模型,因为在控制台中,当我简单地调用 Member 或 Subscriber 时,我会返回类定义。
我已经阅读了简单的文档,但我一定遗漏了什么?