0
私はActiveモデルレコードの配列を持っています。配列には最大約75個のオブジェクトがあります。しかし、このモデルは複数の関連と関係を持って複雑です。今は、as_jsonメソッドをオーバーライドして、必要なフィールドだけをインクルードします。 60個のオブジェクトをロードするのに約13秒かかります。どうすればこれをスピードアップできますか?私はそれを後で読み込むことができると仮定してget_vehichlesなどのより複雑なクエリを削除しようとしましたが、パフォーマンスを大幅に向上させることはできません。Rails as_jsonパフォーマンスの問題
def as_json
hash = {}
hash["title"] = calendar_title
#hash["description"] = calendar_description
hash["start"] = start_at.strftime("%Y-%m-%d")
hash["end"] = end_at.strftime("%Y-%m-%d")
hash["url"] = "/admin/appointments/#{id}"
hash["base_amount"] = base_amount
hash["start_at"] = start_at
hash["end_at"] = end_at
hash["tech_id"] = technician_id
hash["asset_id"] = asset_id
hash["customer_name"] = customer.full_name(false)
# hash["customer_id"] = customer_id
hash["id"] = id
# hash["cust_addresses"] = customer.addresses
hash["address"] = address
# client_host = ClientHost::Location.find_by_id(address.client_host_locations_id)
# hash["customer_email"] = customer.email
# hash["customer_wholesale"] = customer.wholesale?
# hash["customer_tax_exempt"] = customer.tax_exempt?
# hash["vehicles"] = self.get_vehicles
end
def get_vehicles
vehicles = []
self.appointment_vehicles.each do |av|
hash = {}
hash["appointment_vehicle"] = av
hash["total_amount"] = av.total_amount
hash["vehicle"] = av.vehicle
hash["package_display_title"] = av.package.display_title
hash["package_amount"] = av.package.amount
hash["upgrades"] = self.get_upgrades(av.upgrades)
vehicles.push(hash)
end
return vehicles
エンド
データベースからレコードを取得するためのクエリを表示できますか? –