0
我對我的Rails應用程序使用地理編碼器並嘗試返回我當前位置附近的公園列表。下面的代碼正在工作,但當然只是返回公園距離給定的公園(當前對象)。不知道如何做到這一點與當前的位置。任何幫助將不勝感激。在視圖中使用Rails通過地理編碼器返回當前位置附近的位置
代碼:
<% @parks.each do |park| %>
<%park.nearbys(1.9).each do |near_park| %>
<li><%= link_to near_park.name%> (<%= near_park.distance.round(2)%> kms)</li>
<% end %>
控制器設置:
class SearchController < ApplicationController
def new
@parks = Park.all
@activities = Activity.all
end
def address
@address = Park.find(params[:address])
Geocode.search("@address")
end
端
初始化器:
Geocoder.configure(
# geocoding service:
:lookup => :google,
# IP address geocoding service:
:ip_lookup => :maxmind,
# to use an API key:
:api_key => 'API KEY',
# this is very important option for configuring geocoder with API key
:use_https => true,
# geocoding service request timeout, in seconds (default 3):
:timeout => 3,
# set default units to kilometers:
:units => :km,
)
型號:
Class Park < ApplicationRecord
has_many :park_activities
has_many :activities, through: :park_activities
has_many :events, through: :park_activities
validates :name, :address, presence: true
# accepts_nested_attributes_for :activities
geocoded_by :address # can also be an IP address
after_validation :geocode, :if => :address_changed?
end
非常感謝回覆Max。我是初學者,所以請和我一起裸照。我不理解如何在服務器上進行IP查詢。初始化器配置爲使用:ip_lookup =>:maxmind,但我不知道如何使用它。 – frankburke333
您可以使用'request.location',它將返回nil或'Geocoder :: Result'對象。 – max