在工作节点中的哈希中查找记录 = 工作节点.all


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

最新更新