我正在使用active_record-acts_as gem来实现多表继承。我的情景:
class Vehicle < ActiveRecord::Base
actable
end
class Plane < ActiveRecord::Base
acts_as :Vehicle
end
class Train < ActiveRecord::Base
acts_as :Vehicle
end
每当我创建一个Plane或Train实例时,都会创建一个相应的Vehicle。
我正在开发一个API,因此在列出Vehicle时,我将返回Vehicle模型中的字段。然而,当我收到GET / Vehicles / 1时,我想要返回实际车辆,无论是飞机,火车等等。
有什么想法吗?
答案 0 :(得分:0)
class VehiclesController
def show
@vehicle = Vehicle.find(params[:id]).specific
end
end
由于Plane和Train都“延伸”MTI意义上的车辆,你可以通过查询Vehicle
获得记录。 .specific
为您提供实际的Plane或Train实例,而不是父类型。