Поиск записи в хэше в minions = Minion.all - PullRequest
0 голосов
/ 09 февраля 2012
minions = Minion.all 

Есть ли способ найти миньонов прямо в переменной вместо поиска в базе данных?

Я пытаюсь это исправить, и я думаю, это будет одним из способов продвижения вперед:

subtotal = 0.0
units = Unit.all
self.quote_items.order("area_id").each do |item|
  subtotal += Unit.find(item.unit_id).highest_price(package)*item.quantity if item.unit
end
sprintf("%.2f", Quote.add_margin(subtotal))

1 Ответ

2 голосов
/ 09 февраля 2012

В вашем примере вы можете использовать метод find для массива units.

subtotal = 0.0
units = Unit.all
self.quote_items.order("area_id").each do |item|
  if unit = units.find{|u| u.id == item.unit_id
    subtotal += unit.highest_price(package)*item.quantity
  end
end
sprintf("%.2f", Quote.add_margin(subtotal))

Но в этом случае вы можете использовать :include.Это загрузит item.unit для каждого элемента.

quote_items.order("area_id").include(:unit).each do |item|
  if item.unit
    subtotal += item.unit.highest_price(package) * item.quantity
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...