环境:
A是一个模型
- 带有属性 [name, email, actable_id, actable_type]
B 和 C 是 A 的子类型(作为 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
问题:对类型 B 的查询返回任何具有父 A 的表条目,包括 C。
c = C.create(name, email)
b = B.create(name, email)
B.first # Expected b, actual is c
B.count # Expected 1, actual 2