0
# 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ハッシュをループして、このステートメントの条件を満たすエンティティを収集するにはどうすればよいですか?そこにあるように、それは最初の結果を返すだけです。

4

2 に答える 2

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

ハッシュを返すだけの場合は、select代わりにselect!.

于 2013-03-24T04:09:50.617 に答える
1

との代わりに#eachifを使用します#select

# search for a particular location
a = a.select do |loc|
  coorDist(loc.lat, loc.lng, lat, lng) < dist
end
于 2013-03-24T04:18:41.453 に答える