我们可以通过连接进行急切加载吗?

时间:2013-11-30 06:32:33

标签: ruby-on-rails activerecord

我知道includes急切加载所有关联的模型属性,例如:

@posts = Post.includes(:user)

将为每个帖子加载包含所有用户属性(name,birthe_date,login ....)的所有帖子

如果我是对的,我们不能使用select with includes来获取这样的一些属性:

@posts = Post.includes(:user).select("posts.*, user.name as user_name")

所以,通过连接,可以使用select:

posts = Post.joins(:user).select("posts.*, user.name as user_name")

我的问题是:当我在select中使用joins时,我们可以将其称为eager loading吗?

如果是的话,是

posts = Post.joins(:user).select("posts.*, user.*")

相当于? :

posts = Post.includes(:user)

1 个答案:

答案 0 :(得分:0)

你没有从这篇博文中看到你的例子,它非常清楚地解释了joinsincludes之间的差异和相似之处吗?如果没有,那就太巧合了。

http://nlingutla.com/blog/2013/04/21/includes-vs-joins-in-rails/