引用具有相同ID的多个STI模型

时间:2019-01-12 10:19:25

标签: ruby-on-rails postgresql activerecord sti

我在用户表上有两个STI模型:

class Teacher < User
  has_many :parent_leads

class AppTeacher < User
  has_many :parent_leads, foreign_key: :teacher_id

我与

定义了关系
class ParentLead < Lead

正在迁移:

add_foreign_key :leads, :users, column: :teacher_id

问题在于,在运行activerecord查询时

ParentLead.last.teacher

它查询类似的东西

  Teacher Load (4.1ms)  SELECT  "users".* FROM "users" WHERE "users"."deleted_at" IS NULL AND "users"."type" IN ('Teacher') AND "users"."id" = $1 LIMIT $2  [["id", 1419], ["LIMIT", 1]]

但是我想检查两种类型的用户(教师|| AppTeacher)

所以,如果我跑步

ParentLead.last.teacher

应该检查用户表中是否有两种类型的用户(教师|| AppTeacher)

任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果我正确回答了您的问题,那么您要找的是“ polymorphic-associations

  

多态性在关联上略微更高级   协会。使用多态关联,模型可以属于更多   一个单一关联上的模型。例如,您可能   具有属于员工模型或员工模型的图片模型   产品型号。

看看这是如何设置的,如果您仍然需要更多帮助,请告诉我。

快乐编码