Rails N + 1查询

时间:2015-06-22 10:16:39

标签: ruby-on-rails

有以下Rails代码:

控制器:

class OrdersController < ApplicationController
  def index
    @orders = current_hotel.restaurant_orders
  end
end

查看:

json.array! @orders do |order|
  json.id order.id
  json.room order.room
  json.note order.note
  json.order_status_id order.order_status_id
  json.created_at order.created_at
  json.total_cost   order.total_cost

  json.restaurant_order_items order.restaurant_order_items do |roi|
    json.id roi.id
    json.count roi.count
    json.cost roi.cost
    json.title roi.title
    json.total_cost roi.total_cost
  end

  json.restaurant do
    json.id order.restaurant.id
    json.email order.restaurant.email
    json.phone order.restaurant.phone

    json.place { json.title order.restaurant.place.title }
  end
end

如果我理解正确的Rails将发出1 + 2 * N个请求。我怎样才能让它更快?我应该添加'包含'吗?提前致谢

0 个答案:

没有答案