У меня сейчас есть это:
data = []
products.each do |product|
categories = product.shop_categories.select("shop_categories.id, shop_categories.name").map do |category|
{
:name => category.name,
:category_id => category.id.to_s
}
end
data << {
:name => product.name,
:product_id => product.productid,
:manufacturer => product.manufacturer,
:detail => product.description,
:categories => categories,
:sales_rank => product.sales_rank,
:sale_price => product.sale_price.to_f,
:price => product.price.to_f,
:images => product.images,
:url => product.url,
:is_rated => current_user.voted_for?(product),
:is_liked => current_user.voted_as_when_voted(product),
:is_in_wishlist => current_user.has_product_in_wishlist?(product)
}
end
Эта часть, где товары ищут по ее shop_categories
, занимает огромное количество времени, чтобы запросить, так как каждый продукт (100 за прогон), когда ищет товары 'shop_categories
.
Есть ли способ минимизировать количество запросов или хотя бы минимизировать использование ЦП этим процессом?