2013-04-01 47 views
4

我想用ActiveRecord实现多表继承。看起来所有可用的宝石都很旧。我错过了什么吗?有没有“原生”的方式来实现这与主动记录? 我用Rails 3.2.3和3.2.1的ActiveRecord多表继承Rails和主动记录

+1

有很多混乱当中涉及VS单表 - 多表继承之间的精确差异开发商继承与类表的继承。 我认为在我能正确给你答案之前,确定你相信你指的是重要的。 这绝对是我感兴趣的话题,所以如果您有任何更新的信息,请发布更新。 :) –

回答

1

单表继承(其中每个汽车和卡车共用一个数据库)

class Vehicle < ActiveRecord 
end 

class Car < Vehicle 
end 

class Truck < Vehicle 
end 

你的情况,你是不是共享数据库而是功能。那么你应该写一个模块,它包括在每个模型

class Car < ActiveRecord 
    extend VehicleFinders 
end 

class Truck < ActiveRecord 
    extend VehicleFinders 
end 

module VehicleFinders 
    def find_purchased 
    #... 
    end 
end 

所以在extend模块的方法是对调用的类类的方法。 include模块的方法是实例方法对象调用

的这可能是一个良好的阅读你http://raysrashmi.com/2012/05/05/enhance-rails-models

+0

链接不起作用了。 – zode64

+0

新链接http://raysrashmi.com/2012/05/05/enhance-rails-models最终没有.html –