任何人都可以解释这一点吗?导轨选择并包括
Project.includes([:user, :company])
此执行3个查询,一个获取项目,一个获取用户为这些项目和一个获取公司。
Project.select("name").includes([:user, :company])
这会执行3个查询,并完全忽略选择位。
Project.select("user.name").includes([:user, :company])
这将执行1个正确的左连接查询。仍然完全忽略了选择。
在我看来,铁轨忽略选择与包括。好吧,但为什么当我把一个相关的模型选择它是否从发出3个查询切换到发出1个查询?
请注意,1查询是我想要的,我无法想象这是正确的方式来获取它,也不知道为什么它的作品,但我不知道如何得到结果在一个查询(。连接似乎只使用INNER JOIN,事实上我并不需要它,而当我手动指定连接条件来连接搜索gem时,我们使用怪物,因为它尝试重新添加具有相同名称的连接)。
可能的重复[Rails 3 - 选择包含?](http://stackoverflow.com/questions/4047833/rails-3-select-with-include) – 2014-01-26 08:58:26