2010-01-05 48 views
1

我想在ruby中有两个模型的共同超类,以共享几种方法。假设我想要从Vehicle继承TruckCar。这里有一些选择:在rails中插入超类,没有相应的数据库表

  1. class Vehicle < ActiveRecord::Base,并有class Truck < Vehicle等,但后来我得到的错误,说我没有表Vehicle(我不想要一个,要么)。

  2. 使用module Vehicleinclude Vehicleclass Truck < ActiveRecord::Base。但attr_reader和朋友不适用于Truck

因此,我想要class Vehicle。我如何在不需要桌子的情况下做到这一点?我敢肯定有一个标准,这样做的很好的方式...

回答

4

添加方法称为abstract_class?返回true

class Vehicle < ActiveRecord::Base 
    def self.abstract_class? 
    true 
    end 
end 
+0

啊,完美的,我知道这必须有一个干净的解。谢谢! – Peter 2010-01-05 10:06:14