有人能告诉我这种行为究竟产生了什么:
users = User.includes(:profile => [:city, :state])
尤其意味着:城市和:状态,没有这些额外的论点,它们会有什么不同。
答案 0 :(得分:0)
此预先缓存链接表'配置文件'中的'city'和'state'字段,因此当您调用例如'user.profile.city'时将不会有额外的查询
答案 1 :(得分:0)
例如,您希望每个用户的城市和州都在视图中显示,然后在没有includes
方法的情况下,将触发两个数据库查询,以便每个用户获取他的state
和city
这会在您的应用程序中引入n+1
查询问题。要解决此问题,您可以使用state
方法加载city
和includes
。