我有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存储在新列中。