我知道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)
答案 0 :(得分:0)
你没有从这篇博文中看到你的例子,它非常清楚地解释了joins
和includes
之间的差异和相似之处吗?如果没有,那就太巧合了。
http://nlingutla.com/blog/2013/04/21/includes-vs-joins-in-rails/