如何用rubygeocoder gem限制位置数量?

Pra*_*tha 4 ruby rubygems geocoding ruby-on-rails

我有一个位置对象,所以location.nearbys获取位置附近的所有位置.但我想将结果限制为5.我正在使用location.nearbys.limit(5),但问题是当没有附近位置时我收到错误消息.它说限制不能用于空数组[].那么,解决方案是什么.我可以用.

location = location.nearbys
location = location.nearbys.limit(5) unless location.empty?
Run Code Online (Sandbox Code Playgroud)

我有更好的方法吗?我使用的是mongoid,rails 3.0.7,ruby 1.9.2.

Mar*_*her 6

问题是rubygeocoder ActiveRecord::Relation在成功时返回,但Array在失败时返回空.并且Ruby的Array没有响应limit,因此我的提示是使用first(number)而不是limit(number),这将适用于这两个结果.


发现,这个问题的最佳解决方案是使用take(5)哪个适用于Mongoid::Criteria对象和Ruby Array.

  • 谢谢你的努力.我希望你的努力是值得的,你开始使用mongoid;) (2认同)