2015-02-24 36 views

回答

0

爲了讓地理編碼記錄下來的經度和緯度。您需要將緯度和經度字段添加到您的數據庫表中。假設你使用users表。

首先添加遷移

rails generate migration AddLatitudeLongitudeToUsers 

修改遷移如下

class AddLatitudeLongitudeToUsers < ActiveRecord::Migration 
    def change 
    add_column :users, :latitude, :float 
    add_column :users, :longitude, :float 
    end 
end 

運行rake db:migrate保存更改。

添加下面的地理編碼設置爲用戶模型

class User < ActiveRecord::Base 
    geocoded_by :current_sign_in_ip 
    after_validation :geocode, if: :current_sign_in_ip_changed? 
end 

因爲我們大多數人在測試和開發我們的本地機器上的應用程序,current_sign_in_ip將下降記錄爲「127.0.0.1」您登錄後。

您可以從軌控制檯驗證rails c

u = User.find_by_email("[email protected]") 
u.current_sign_in_ip 
u.latitude 
u.longitude 

要查看是否地理編碼器工作與否,讓手動更改IP

u.current_sign_in_ip = "199.182.122.98" 
u.save 
u.latitude 
u.longitude 

登錄後,請確保current_sign_in_ip場有IP記錄下來。否則,緯度和經度字段將爲零。

+0

我已經完成了所有這些,但經緯度仍然不足 – 2015-02-24 03:21:33

+0

它適合你嗎? – Tim 2015-02-24 10:01:05

+0

不,因爲我在我的網站上嘗試對sign_in進行地理編碼。所以,如果有人登錄,我會收到他們的ip並將其更​​改爲經度,緯度。 – 2015-02-24 17:49:40