2016-02-22 20 views
2

我有这个疑问:Rails 4 - 未使用的热切加载。为什么?

@cars = Car.select('COUNT(id) AS grouped_cars') 
          .includes(:services, :industries) 
          .within(distance, origin: params[:search_dealer]) 
          .where('...') 
          .group('cars.brand') 

然后,在视图中:

<% @cars.each do |car| %> 
    ... 
    <% car.services.each do |service| %> 
    <%= service.name %> 
    <% end %> 
    ... 
<% end %> 

Bulet宝石提醒未使用预先加载 - 删除包括(:服务行业)

我究竟做错了什么?

编辑: 这里就是使用industries代码:

<% industries = car.industries.map(&:name_slug).join(',') %> 
+1

我不明白怎么说'select'实际上可以用来做任何东西,除了它返回计数小号? – phoet

+0

抓取表中的所有字段,“select”与“includes”不兼容 - 表示选择部分只抓取一些额外字段(计数)。 – user984621

+0

我想,你应该在查询中使用select。我相信,查询中不会使用'includes' – Anwar

回答

1

的原因是因为您没有使用“产业”与块,所以你已经对行业表不必要的查询这是不是在你的模板中使用

<% @cars.each do |car| %> 
<% car.services.each do |service| %> 
<%= service.name %> 
<% end %> 
相关问题