带函数的Ruby查询


# search for a particular date (between two other dates)    
  a = self.where('created_at > ? AND created_at < ?', yes, tom)
# search for a particular location
  a = a.each do |loc|
    if coorDist(loc.lat, loc.lng, lat, lng) < dist
      return loc
    end
  end

我试图返回一个散列,就像这里的a的初始值一样。如何循环遍历哈希并收集满足此if语句条件的实体??这里的方式是,它只返回第一个结果

a.select! do |loc|
  coorDist(loc.lat, loc.lng, lat, long) < dist
end

如果您只是返回哈希值,请使用select而不是select!

#select代替#eachif

# search for a particular location
a = a.select do |loc|
  coorDist(loc.lat, loc.lng, lat, lng) < dist
end

最新更新