2

环境:

A是一个模型

  • 带有属性 [name, email, actable_id, actable_type]

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

使用这个 gem 来模拟 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
4

1 回答 1

1

自述文件没有告诉你继承自A——它显示“子类”仍然直接继承自ActiveRecord::Base

于 2015-05-26T22:09:05.463 回答