Rails的 - 获取用户的国家注册时使用设计和地理编码宝石
问题描述:
在我的申请,我有宝石devise 4.2.0
& geocoder 1.4.3
& User
模型。Rails的 - 获取用户的国家注册时使用设计和地理编码宝石
在User
模型中,我已经添加列country
,latitude
& 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
感谢,@ puneet18。我只需要添加'after_save'?我是否也需要添加'geocoded_by'?因为现在。它没有给我国名。 – Rubioli
在生产当我创建用户时,我得到这个错误:**未定义的局部变量或方法'请求'为#你的意思是?要求** – Rubioli