簡體   English   中英

使用 geocoder gem for rails,我如何獲得訪問者的城市?

[英]Using the geocoder gem for rails, how do i get the visitor's city?

https://github.com/alexreisner/geocoder

我找不到顯示來自 ip 地址的訪客所在城市的文件? 我知道如何使用 HTML5,但我想使用地理編碼器的值。 謝謝

我花了幾個小時才意識到答案很簡單:

request.location.city

Geocoder 頁面有這個示例,但我認為我需要聲明請求,但不需要,不需要更多。

如果您沒有 Geocoder,則必須安裝 gem,除此之外別無他法。

我是怎么做到的——

location = Geokit::Geocoders::IpGeocoder.geocode(source_ip)
city = location.city
country = location.country

這里,source_ip 是一個字符串 object。

# app/models/user.rb
geocoded_by :ip_address,
  :latitude => :lat, :longitude => :lon
after_validation :geocode

來自地理編碼器網站的片段。

你可以用兩種不同的方式來做

1) 如果您可以將訪問者城市/地址作為字符串,那么地理編碼器會自動將其轉換為緯度和經度

class Message < ActiveRecord::Base
  geocoded_by :full_address
  after_validation :geocode

  def full_address
    "#{city}, Sri Lanka"
  end

end

2) 否則你將不得不跟蹤訪問者的 ip,例如在主頁上的 'geocoder' gem

注意:你可以使用 near by 方法如下

<Active Record Object List>.near(<City Name>, <distance>, :order => :distance)

Ex: @messages = @messages.near("colombo", 10, :order => :distance)

並且在railscasts中有一個由 ryan 投射的超級屏幕

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM