Rails as_json性能问题

时间:2017-11-05 15:24:08

标签: ruby-on-rails json rails-activerecord

我有一组Active模型记录。该数组最多可包含约75个对象。然而,该模型复杂,具有多种关联和关系。现在我重写as_json方法只包含必要的字段。这需要大约13秒来加载60个对象。我怎样才能加快速度呢?我已经尝试删除一些更复杂的查询,例如get_vehichles,假设我可以稍后加载,但它似乎没有显着帮助性能。

z-a

1 个答案:

答案 0 :(得分:0)

我不确定我是否会把你带到这里,但我会给你一个挖掘

require 'oj'
def get_vehicles
  vehicles = self.appointment_vehicles.map do |av|
    {
      appointment_vehicle: av,
      total_amount: av.total_amount,
      vehicle: av.vehicle,
      package_display_title: av.package.display_title,
      package_amount: av.package.amount,
      upgrades: self.get_upgrades(av.upgrades)
    }
  end

  vehicles
  # Oj.dump(vehicles) <-- if you need this hash as json
end

那是怎么回事?

除此之外,activerecord查询将占用最多的时间。如果您可以共享它在检索记录时执行的SQL查询,那么它会很好吗?