Ruby on rails 3 在minions=Minion.all中的哈希中查找记录

Ruby on rails 3 在minions=Minion.all中的哈希中查找记录,ruby-on-rails-3,hash,Ruby On Rails 3,Hash,有没有办法直接在变量中查找仆从,而不是在数据库中搜索 我正在努力清理这件事,我认为这将是一个前进的方向: minions = Minion.all 在您的示例中,您可以在units数组上使用find方法 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

有没有办法直接在变量中查找仆从,而不是在数据库中搜索

我正在努力清理这件事,我认为这将是一个前进的方向:

minions = Minion.all 

在您的示例中,您可以在
units
数组上使用
find
方法

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))
但是在这种情况下,您可以使用
:include
。这将加载每个项目的
项。单位

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))
quote_items.order("area_id").include(:unit).each do |item|
  if item.unit
    subtotal += item.unit.highest_price(package) * item.quantity
  end
end