Rails方法 - 实现范围搜索 - 需要建议

时间:2012-03-17 15:18:59

标签: ruby-on-rails ruby

您好我正在我的代码中实现范围搜索以从我的数据库中检索值:例如,假设我有一个特定城市的公交车站列表数据库。我有一个移动设备通过JSON向Rails发送纬度和经度值,我希望rails能够检索该点1公里范围内的所有公交车站。

到目前为止,我有一个如下所示的列表模型:

class Listing < ActiveRecord::Base


  #This method shows listings around a point
  def self.find_around(_latitude, _longitude)

    self.where('latittude = _latitude','longitude = _longitude')

  end
end

我有一个看起来像这样的list_controller

class ListingsController < ApplicationController

  def around(_latitude,_longitude) 

    @listings_around = Listing.find_around(_latitude, _longitude)

  end


  def index   
    #self.create_listings
    @listings = Listing.all
    respond_to do |format|
      format.html #index.html.erb
    end
end

所以我知道这些方法的语法有问题。我是Rails的新手,我来自Java背景。我试图理解REST和资源的整个概念,而我正在编写这种方法。 我试图学习这些东西:

1)如何构造方法语法,以便客户端能够调用方法并传递2个参数:纬度和经度到rails。

2)我想要尝试的下一件事是在Ruby中编写实际算法,给定这些坐标,我想找到半径1公里内的所有内容

1 个答案:

答案 0 :(得分:1)

对于第二部分,请尝试geocoder gem

它提供位置感知数据库查询,您可以在这样的坐标附近查找一些场地:Venue.near([40.71, 100.23], 20)(例如,这表示在此坐标周围20英里处寻找场地)