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



嗨,我正在代码中实现一个范围搜索,以从数据库中检索值:例如,我有一个特定城市公交车站列表的数据库。我有一个移动设备,它通过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

我有一个listing_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) 如何构造方法语法,以便客户端能够调用该方法并将两个参数传递给rails:纬度和经度。

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

对于第二部分,请尝试地理编码器gem

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

最新更新