Многостоловые запросы наследования
Окружение:
А это модель
- С атрибутами [имя, адрес электронной почты, 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