多表继承查询

时间:2015-05-26 22:00:25

标签: ruby-on-rails multi-table-inheritance

环境:

A是模型

  • 使用[name,email,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 

问题:类型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

1 个答案:

答案 0 :(得分:1)

自述文件不会告诉您继承自A - 它显示&#34;子类&#34;仍然直接从ActiveRecord::Base

继承