我一直在尝试编写一些代码来自动检测网站访问者的 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'
我哪里错了?或者为什么模型不像描述的那样起作用?