2

我一直在尝试编写一些代码来自动检测网站访问者的 IP 地址并显示相应的城市。我认为这就像使用 Geocoder 检测 IP 然后显示相应的城市一样简单,但是我没有成功。

我一直在查看声称与 IP 地址兼容的文档,但要么我做错了,要么文档有误:http ://rdoc.info/github/alexreisner/geocoder/master/frames

我在我的 location.rb 模型中有这个,它应该提供诸如result.city字符串之类的数据。

class Location < ActiveRecord::Base
  attr_accessible :address, :latitude, :longitude

  reverse_geocoded_by :lat, :lon do |obj,results|
      if geo = results.first
        obj.city    = geo.city
        obj.zipcode = geo.postal_code
        obj.country = geo.country_code
      end
    end
    after_validation :reverse_geocode

end

所以我将@city = result.city 添加到我的locations_controller.rb

def index
    @locations = Location.all
    @city = result.city
  end

然后为了测试它是否有效,我将<%= @city %>index.html.erb 放入了位置。

在呈现页面时,我在控制器中收到一个错误,指出“结果”尚未定义:

undefined local variable or method `result' for #<LocationsController:0x007faf9d5009e8>

app/controllers/locations_controller.rb:7:in `index'

我哪里错了?或者为什么模型不像描述的那样起作用?

4

0 回答 0