【发布时间】:2016-12-06 20:01:57
【问题描述】:
在 ActiveRecord 模型上使用 includes 时,是否有更好的方法来指定内部连接:
User.includes(:address).joins(:address)
似乎应该有一种更漂亮的方式来指定何时需要内部连接和包含?
【问题讨论】:
-
为什么你需要同时调用这两个?您不应该需要包含和连接,对吗?您只想要有地址的记录吗?
joins应该给你。即使没有地址关联,您是否想要所有用户?includes应该给你那些。 -
另外,如果您需要更具体地了解连接,您可以提供一段 SQL。但是你不需要它只是
INNER JOIN,它是joins的自然输出。这是有关该主题的文档:apidock.com/rails/ActiveRecord/QueryMethods/joins -
:includes 将预加载或急切加载关联,但 :joins 不会。所以如果你想加载关联并指定一个内部连接,那是我想出的最好的解决方案——只是代码不是很漂亮。
标签: ruby-on-rails activerecord rails-activerecord