5

アドレスの検索とGeocoderの使用に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

特定のシナリオを実現するために、これをすべて設定するにはどうすればよいですか?

4

2 に答える 2

3

このRailsCastを必ずチェックアウトしてください。私はそれがあなたの質問に正確に答えると思います。

于 2011-11-22T12:05:59.610 に答える
3

このスレッドがあなたを助けることができると私は信じています: http://groups.google.com/group/ruby-sunspot/browse_frm/thread/ecc8231569ea7ef7/f8569abee2197a19? lnk = gst&q = geokit#f8569abee2197a19

また、 SunspotGroupでこのテーマに関するスレッドをさらにチェックアウトしてください。

于 2011-12-08T00:09:49.070 に答える