Ruby on rails 4 如何从Geocoder gem获取城市名称和远程IP地址?
Rails 4+Ruby 2+Geocoder gem 控制器动作Ruby on rails 4 如何从Geocoder gem获取城市名称和远程IP地址?,ruby-on-rails-4,rails-geocoder,Ruby On Rails 4,Rails Geocoder,Rails 4+Ruby 2+Geocoder gem 控制器动作 def index @your_id = request.ip #here i am getting localhost IP address like "127.0.0.1" binding.pry end 我认为在@your_id中,它应该捕获IP地址,而不是本地主机IP地址(“127.0.0.1”) 但在视图中,我需要根据我的位置显示城市示例,如果您在纽约市,那么它应该动态显示纽约市(通过ip地址) 知道如何获取城市
def index
@your_id = request.ip #here i am getting localhost IP address like "127.0.0.1"
binding.pry
end
我认为在@your_id中,它应该捕获IP地址,而不是本地主机IP地址(“127.0.0.1”)
但在视图中,我需要根据我的位置显示城市示例,如果您在纽约市,那么它应该动态显示纽约市(通过ip地址)
知道如何获取城市名称和IP地址吗?地理编码器gem在请求对象()上提供了一个
\location
方法,该方法返回一个带有纬度和经度的定位结果:
request.location
=> #<Geocoder::Result::Freegeoip:0x007f8ecca5d608
@cache_hit=true, @data= {
"ip"=>"199.21.87.210", "country_code"=>"US",
"country_name"=>"United States", "region_code"=>"CA", "region_name"=>"California", "city"=>"Berkeley", "zipcode"=>"", "latitude"=>37.8716, "longitude"=>-122.2728, "metro_code"=>"807", "areacode"=>"510"
}>
=>#“199.21.87.210”,“国家代码”=>“美国”,
“国家名称”=>“美国”、“地区代码”=>“加利福尼亚”、“地区名称”=>“加利福尼亚”、“城市”=>“伯克利”、“zipcode”=>、“纬度”=>37.8716、“经度”=>-122.2728、“地铁代码”=>“807”、“区号”=>“510”
}>
要在浏览器中测试此功能,请尝试使用公开本地服务器,并在控制器中抛出一些调试器语句,以查看
请求.location
对象的外观。geocoder gem在请求对象()上提供了#location
方法它返回带有纬度和经度的位置结果:
request.location
=> #<Geocoder::Result::Freegeoip:0x007f8ecca5d608
@cache_hit=true, @data= {
"ip"=>"199.21.87.210", "country_code"=>"US",
"country_name"=>"United States", "region_code"=>"CA", "region_name"=>"California", "city"=>"Berkeley", "zipcode"=>"", "latitude"=>37.8716, "longitude"=>-122.2728, "metro_code"=>"807", "areacode"=>"510"
}>
=>#“199.21.87.210”,“国家代码”=>“美国”,
“国家名称”=>“美国”、“地区代码”=>“加利福尼亚”、“地区名称”=>“加利福尼亚”、“城市”=>“伯克利”、“zipcode”=>、“纬度”=>37.8716、“经度”=>-122.2728、“地铁代码”=>“807”、“区号”=>“510”
}>
要在浏览器中测试此功能,请尝试使用公开本地服务器,并在控制器中抛出一些调试器语句,以查看request.location
对象的外观