我有一个像这样的 STI 类层次结构:
Producer, Partner, Freelancer < Statusowner < Contact
当我打电话给例如Partner.all
我看到rails产生这个:
SELECT "contacts".* FROM "contacts" WHERE "contacts"."type" IN ('Partner', 'Producer', 'Partner', 'Freelancer') ORDER BY contacts.name
您会看到它首先包括 Partner,然后是 Statusowner 的所有子类,再次包括 Partner。这与所有子类类似。
我已经设置self.descentants
了 Statusowner,所以一切都在开发环境的早期加载:
class Statusowner < User
def self.descendants
[Producer, Sales, Partner, Freelancer]
end
end
知道我做错了什么吗?