有人可以告诉我这种行为究竟会产生什么:
users = User.includes(:profile => [:city, :state])
特别是 :city 和 :state 的含义,如果没有这些额外的参数,它有什么不同。
有人可以告诉我这种行为究竟会产生什么:
users = User.includes(:profile => [:city, :state])
特别是 :city 和 :state 的含义,如果没有这些额外的参数,它有什么不同。
this pre-caches 'city' and 'state' fields from linked table 'profiles' so there will be no extra queries when you call e.g 'user.profile.city'
例如,您希望您的每个用户的城市和州都显示在视图中,那么如果没有该includes
方法,将为每个用户触发两个数据库查询以获取他的数据state
,city
这会在您的应用程序中引入n+1
查询问题。要解决此问题,您可以预先加载state
并city
使用includes
方法。