Geocoder Gem – 获取request.location.country的“保留”(即使在Local!中)

我需要能够在本地查看地理编码器国家和城市的输出,以获得“Hi,Yu在{country detected}中”的消息。

为了能够在本地/开发模式下使用地理编码器,我已经遵循了一些SO建议并放置:

在config / environment / development.rb中

class ActionDispatch::Request def remote_ip "84.34.156.155" # fake ip for example end end 

并在application_controller中

  def lookup_ip_location if Rails.env.development? Geocoder.search(request.remote_ip).first else request.location end end 

在我的主页上,如果我把:

您在中

它在本地显示“你在保留”。 它认为ip = 00.00.00并且构建地理编码器以返回“在那种情况下保留”。

很公平,如果我把:,它然后工作,并给我我已放入config / environment / develomment.rb的IP:84.34.156.155

所以我试图把“你在”,但它不起作用,并给我错误:

 undefined method `country' for 84.34.156.155":String 

如何在本地显示我设置的IP位置的国家/地区!

谢谢

它在生产中工作正常(它显示’你在法国’!)但不在本地!

我能怎么做? 我可以在本地工作和检查东西,而不是每次都要部署以检查它是否有效。

你应该把它称为

 Geocoder.search(request.remote_ip).first.country