Многостоловые запросы наследования

Окружение:

А это модель

  • С атрибутами [имя, адрес электронной почты, actable_id, actable_type]

B и C являются подтипами A (как отношение MTI)

Использование этого драгоценного камня для моделирования 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 ответ

Решение

README не говорит вам наследовать от A - показывает "подклассы", все еще наследуемые напрямую от ActiveRecord::Base

Другие вопросы по тегам