多 Table 继承查询
Multi Table Inheritance Queries
设置:
A是模特
- 具有属性 [姓名、电子邮件、actable_id、actable_type]
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
设置:
A是模特
- 具有属性 [姓名、电子邮件、actable_id、actable_type]
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