【问题标题】:Rails GeoLiteCity GeoIP Doesn't Work In Local Development EnvironmentRails GeoLiteCity GeoIP 在本地开发环境中不起作用
【发布时间】:2014-09-12 13:48:18
【问题描述】:

我有来自 MaxMind 的 GeoIP.dat(国家)和 GeoLiteCity.dat(城市)数据。国家数据在我当地的 Rails 开发中运行良好,但是当我尝试查找城市数据时,它返回 null。

但是,当我部署到 Heroku 时,城市数据确实返回了正确的值。知道为什么国家/地区数据在本地发展中起作用而城市数据不起作用吗?

在 Heroku 中工作,而不是在本地:

geoip = GeoIP.new('geoip/GeoLiteCity.dat').city(request.remote_ip)

两者都适用:

geoip = GeoIP.new('geoip/GeoIP.dat').country(request.remote_ip)

【问题讨论】:

    标签: ruby-on-rails heroku geoip


    【解决方案1】:

    我的猜测是,Maxmind 出于某种原因将私有 IP 网络输入国家数据库,但 [正确地] 没有输入城市数据库。

    您应该编写代码,以便在没有得到结果时将其设置为某个值(如果您在其他地方依赖它)。它会发生(尤其是在开发中)。在我的项目中,我将其设置为公司总部所在的城市。

    【讨论】:

    • 是的,我在 if 语句中添加了检查它是否存在,如果存在则获取 geoip 数据,否则跳过它。但是我仍然有一堆“不必要的”提交,因为我必须在 heroku 中测试 :)
    • @TomHammond 你根本不能在本地测试?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    • 2011-03-28
    • 2020-07-26
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    相关资源
    最近更新 更多