2017-09-27 69 views
0

在我的申請,我有寶石devise 4.2.0 & geocoder 1.4.3 & User模型。Rails的 - 獲取用戶的國家註冊時使用設計和地理編碼寶石

User模型中,我已經添加列countrylatitude & longitude

我想要實現的是在用戶註冊時使用current_sign_in_ip

PS:因爲我開發的IP地址變成:: 1我添加:my_ip列到用戶表,所以我可以手動插入IP。

我已經試過:

class User < ActiveRecord::Base 

    geocoded_by :my_ip 
    after_validation :geocode 

但是它沒有得到國家和緯度經度&是空的。

我也試過:

class User < ActiveRecord::Base 

    geocoded_by :country 
    after_validation :geocode 

有了這個選擇,我手動添加國家名稱,這增加緯度經度&用戶表。

所以我想知道如何在用戶註冊時獲得current_sign_in_ip

回答

0

試試下面的代碼獲得國家:

的Gemfile

gem 'geocoder' 

應用程序/模型/ user.rb

class User < ActiveRecord::Base 
    after_save do 
    self.country = request.ip 
    end 
end 
+0

感謝,@ puneet18。我只需要添加'after_save'?我是否也需要添加'geocoded_by'?因爲現在。它沒有給我國名。 – Rubioli

+0

在生產當我創建用戶時,我得到這個錯誤:**未定義的局部變量或方法'請求'爲#<用戶:0x00000004963080>你的意思是?要求** – Rubioli