多 Table 继承查询

Multi Table Inheritance Queries

设置:

A是模特

B 和 C 是 A 的子类型(作为 MTI 关系)

Using this gem to simulate MTI

A.rb

class A < ActiveRecord::Base
  actable
  ...
end 

B.rb

class B < A
  acts_as :A
  ...
end 

C.rb

class C < A
  acts_as :A
  ...
end 

问题:在父 A 的任何 table 条目上查询类型 B return,包括 C。

c = C.create(name, email)

b = B.create(name, email)

B.first # Expected b, actual is c

B.count # Expected 1, actual 2

自述文件没有告诉您继承自 A - 它显示 "subclasses" 仍然直接继承自 ActiveRecord::Base