您好我正在我的代码中实现范围搜索以从我的数据库中检索值:例如,假设我有一个特定城市的公交车站列表数据库。我有一个移动设备通过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公里内的所有内容
答案 0 :(得分:1)
对于第二部分,请尝试geocoder gem
它提供位置感知数据库查询,您可以在这样的坐标附近查找一些场地:Venue.near([40.71, 100.23], 20)
(例如,这表示在此坐标周围20英里处寻找场地)