我只是在尝试改善查询,以便其结果是提高应用程序的性能。
Student.includes(:parents =>:emails).where("emails.email_address is not null and emails.email_address != ''")
我只是想满足使用电子邮件表的条件,因此显然不需要急于加载电子邮件表,相反,我希望加入。但是我不知道,如何使用包含和连接在一起?这样它就可以使父母积极参与并加入电子邮件
您可以通过将两者链接在一起来做到这一点:
Student.joins(parents: :emails).includes(:parents).where("emails.email_address is not null and emails.email_address != ''")
它的工作方式是在内存中joins
创建JOIN
但不保留任何数据,而在内存中includes
预加载数据但不创建联接。
我建议阅读http://tomdallimore.com/blog/includes-vs-joins-in-rails-when-and-where/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句