Ruby on rails 3 Geokit辅助工具的使用

Ruby on rails 3 Geokit辅助工具的使用,ruby-on-rails-3,geokit,Ruby On Rails 3,Geokit,我正试图通过我的用户的IP地址对他们进行本地化。正如文档所说,名为geocode\u ip\u address的类方法已经混合到ActionController::Base中。但一定有什么我遗漏了。要使用它,我必须在\u filter:geocode\u ip\u address之前定义这样的过滤器吗?(我想知道每个请求的位置) 该文档还谈到“第一次查找将导致GeoLoc类存储在会话中为:geo_location”,但我肯定在会话散列中没有该键 我做错了什么 谢谢。您不需要在对地理编码ip地址进

我正试图通过我的用户的IP地址对他们进行本地化。正如文档所说,名为
geocode\u ip\u address
的类方法已经混合到
ActionController::Base
中。但一定有什么我遗漏了。要使用它,我必须在\u filter:geocode\u ip\u address之前定义这样的过滤器吗?(我想知道每个请求的位置)

该文档还谈到“第一次查找将导致GeoLoc类存储在会话中为
:geo_location
”,但我肯定在会话散列中没有该键

我做错了什么


谢谢。

您不需要在对地理编码ip地址进行过滤之前预先添加,只需将其放入控制器中即可:

class YourController < ApplicationController
  geocode_ip_address

  def action
    if geo = session[:geo_location]
      # geo here is a Geokit::GeoLoc object
    end
  end
end

我曾看到其他帖子说要使用session[:geo_location],但也有一个可以使用的从\u cookie\u或\u service helper中检索\u location\u的方法。谢谢,ActionDispatch远程IP解决方案非常有用。
class ActionDispatch::Request
  def remote_ip
    "x.x.x.x" # fill in your IP address here
  end
end