Ruby on rails 使父类在单表继承(Rails)中不可用

Ruby on rails 使父类在单表继承(Rails)中不可用,ruby-on-rails,inheritance,parent,sti,Ruby On Rails,Inheritance,Parent,Sti,我有一个PhoneNumber类(如下),我想使用单表继承作为子类的父类。这些子类包括MobileNumber、HomeNumber、Fax、Pager等。我想强制每个PhoneNumber类成为PhoneNumber的子类。我该怎么做?我将感谢任何帮助 class PhoneNumber < ActiveRecord::Base attr_accessible :number, :user_id before_save :format_number belo

我有一个PhoneNumber类(如下),我想使用单表继承作为子类的父类。这些子类包括MobileNumber、HomeNumber、Fax、Pager等。我想强制每个PhoneNumber类成为PhoneNumber的子类。我该怎么做?我将感谢任何帮助

class PhoneNumber < ActiveRecord::Base

    attr_accessible :number, :user_id

    before_save :format_number

    belongs_to :user

    validates_presence_of :number
    validates_presence_of :user_id

    def format_number
        number.gsub!(/\D/, '')
    end
end
classphonenumber
这就是模块的用途。您正在定义一个抽象类,它实际上只是系统中其他事物的一组行为,您希望这些行为像电话号码一样。我不确定我是否理解这个问题。标题似乎与内容没有太大关系,并且您已经指出您已经了解了单表继承。那么,你试图实现的是什么,STI没有做到?我认为他试图禁止某人调用
PhoneNumber.new
,而只是实例化其中一个子类。这就是为什么我说“让PhoneNumber成为一个模块,然后没有人可以调用它。新建”。很抱歉,我的意思是我想让父类PhoneNumber不可用(不可创建),这样就只能创建它的子类。我不确定一个模块是否可以工作…我希望能够呼叫PhoneNumber.all,并为我列出所有号码(传真、寻呼机、主页等)。可能的