与同一个表的双重多态关联?关于如何预加载它们的任何想法?

时间:2016-09-30 13:33:39

标签: ruby-on-rails preload

我有CallSession表。它具有多态关联:

class CallSession < ActiveRecord::Base
  belongs_to :callable, polymorphic: true
  belongs_to :calleeable, polymorphic: true
end

CallSession有callable_type,callable_id,calleeable_type和calleeable_id。

callable assoc的成员是Doctor表和Consumer表,calleeable assoc有Doctor和Consumer表。 (是的,同桌)

现在,我需要查询CallSession,其可调用电子邮件与其可调用电子邮件不同(医生和消费者都有电子邮件,两者都可以是可调用的或可调用的)。一封电子邮件可用于Doctor和Consumer对象。

有关如何使用预加载在一个Scope中查询它以避免N + 1的任何想法?提前致谢! 在最坏的情况下,我会将callable.email和calleeable.email存储在新列中。

0 个答案:

没有答案