Методы Rails - Поиск диапазона поиска - PullRequest
2 голосов
/ 17 марта 2012

Привет! В моем коде реализован поиск по диапазону для извлечения значений из моей базы данных. Допустим, например, у меня есть база данных о списках автобусных остановок в определенном городе.У меня есть мобильное устройство, которое отправляет значения широты и долготы в Rails через JSON, и я хочу, чтобы 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 параметра: широту и долготу в рельсы.

2) Следующее, что я хочу попробовать, - написать настоящий алгоритм на Ruby, где с учетом этих координат я хотел бы найти все в радиусе 1 км

1 Ответ

1 голос
/ 17 марта 2012

Для второй части, попробуйте geocoder gem

Он предоставляет запросы к базе данных с учетом местоположения, и вы можете искать места рядом с координатой, например так: Venue.near([40.71, 100.23], 20) (например, это говорит, что ищите места в 20 милях вокруг этой координаты)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...