包含在搜索模型中

时间:2013-08-04 12:23:46

标签: ruby-on-rails

有人能告诉我这种行为究竟产生了什么:

 users = User.includes(:profile => [:city, :state])

尤其意味着:城市和:状态,没有这些额外的论点,它们会有什么不同。

2 个答案:

答案 0 :(得分:0)

此预先缓存链接表'配置文件'中的'city'和'state'字段,因此当您调用例如'user.profile.city'时将不会有额外的查询

答案 1 :(得分:0)

例如,您希望每个用户的城市和州都在视图中显示,然后在没有includes方法的情况下,将触发两个数据库查询,以便每个用户获取他的statecity这会在您的应用程序中引入n+1查询问题。要解决此问题,您可以使用state方法加载cityincludes