use*_*643 5 activerecord class-table-inheritance ruby-on-rails-3
我正在尝试使用 ActiveRecord 实现多表继承。看起来所有可用的宝石都很旧。我错过了什么吗?是否有任何“本机”方式可以使用 activerecord 来实现这一点?我正在使用 Rails 3.2.3 和 activerecord 3.2.1
单表继承(每辆汽车和卡车共享一个数据库)
class Vehicle < ActiveRecord
end
class Car < Vehicle
end
class Truck < Vehicle
end
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您不是共享数据库而是共享功能。然后您应该编写一个模块并将其包含在每个模型中
class Car < ActiveRecord
extend VehicleFinders
end
class Truck < ActiveRecord
extend VehicleFinders
end
module VehicleFinders
def find_purchased
#...
end
end
Run Code Online (Sandbox Code Playgroud)
因此,在extend模块的方法中是调用类的类方法。include模块的方法是调用类的对象的实例方法
这对您来说可能是一本好书http://raysrashmi.com/2012/05/05/enhance-rails-models
| 归档时间: |
|
| 查看次数: |
1873 次 |
| 最近记录: |