Настройка сценария геолокации солнечных пятен - PullRequest
5 голосов
/ 21 ноября 2011

Я использую Sunspot для поиска и использую Геокодер для адресов, а затем для расчета расстояний Geokit-rails3 .

class Product < ActiveRecord::Base
  belongs_to :store
  searchable do
    text :name
  end 
end

class Store < ActiveRecord::Base
  acts_as_mappable
  geocoded_by :address, :latitude => :lat, :longitude => :lng
  attr_accessible :lat, :lng, :address
  has_many :products
end

Вопрос

При вводе товара для поиска мне также нужна возможность ввести адрес внутри другого поля для поиска товаров в данной области с радиусом 30 миль.

Это мой контроллер, который позволяет мне искать продукты:

class SearchController < ApplicationController

  def index
    @search = Product.search do |q|
      q.fulltext params[:search]
    end
    @products = @search.results
  end
end

Поэтому я считаю, что форма будет выглядеть примерно так после того, как я закончу:

<%= form_tag search_path, :method => 'get' do %>
        <%= text_field_tag :search, params[:search]" %>
        <%= submit_tag "Search", :name => nil %>
        <p> Search Near: </p>
        <%= label_tag :location, "Search nearby an Address" %>
        <%= text_field_tag :location, params[:location] %>
<% end %>

Я думаю, :location будет служить виртуальным атрибутом для магазинов :address, чтобы поле было правильно отображено, но это все предположение.

Как мне все это настроить для достижения конкретного сценария?

Ответы [ 2 ]

3 голосов
/ 08 декабря 2011

Я верю, что эта тема может вам помочь: http://groups.google.com/group/ruby-sunspot/browse_frm/thread/ecc8231569ea7ef7/f8569abee2197a19?lnk=gst&q=geokit#f8569abee2197a19

Также просмотрите другие темы по теме в Sunspot Group .

3 голосов
/ 22 ноября 2011

Обязательно оформите этот RailsCast . Я думаю, что это точно отвечает на ваш вопрос.

...