В нашем приложении настроен поиск пользователей, пока что он основан только на запросах текстового контента.
Итак, вот что у меня есть:
в моделях/user.rb
def self.search(query)
where("description ilike ?", "%#{query}%")
end
в приложении/контроллеры/users_controller.rb
class UsersController < ApplicationController
before_action :authorized?
def index
@users = User.all
if params[:search]
@users = User.search(params[:search]).order("created_at DESC")
else
@users = User.all.order('created_at DESC')
end
end
в представлениях/index.html.erb
<%= form_tag(users_path, :method => "get", id: "search-form") do %>
<%= text_field_tag :search, params[:search], placeholder: "Search Users" %>
<%= submit_tag "Search", :name => nil %>
<% end %>
Мы используем рельсы и postgres. Геокодер установлен. Мы храним текущую широту и долготу в отдельных столбцах.
Как мне добавить фильтр поиска близости и какие шаги я предприму с точки зрения MVC?
локация хранится в нашей схеме вот так
create_table "users", force: :cascade do |t|
t.float "latitude"
t.float "longitude"