Rails的 - 获取用户的国家注册时使用设计和地理编码宝石

问题描述:

在我的申请,我有宝石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

试试下面的代码获得国家:

的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

在生产当我创建用户时,我得到这个错误:**未定义的局部变量或方法'请求'为#你的意思是?要求** – Rubioli