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))
在您的示例中,您可以在 units
数组上使用 find
方法。
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