我正在使用gem'geocoder'。 我想做一个对象,将获取从IP地址的经度和纬度。关于geocoder gem的问题
这是我的对象模型的样子:如果我改变了方法,IP到
NoMethodError (undefined method `request'for #<Hey:0x7f268f47dd00>):
:
def ip
return "24.193.83.1"
end
class Hey < ActiveRecord::Base
geocoded_by :ip
after_validation :geocode
def ip
return request.ip
end
end
当我创建一个对象,我得到这个错误
它的工作原理。为什么request.ip
在模型中不起作用? request.ip
适用于我的控制器。
我该如何解决这个问题?
感谢,
俄德
你说的 '存储IP' 是什么意思?我应该在数据库中创建一个名为'ip_address'的属性吗? – 2011-06-07 16:53:27
是的,我的意思是,地理编码器需要从数据库获取ip或类似的东西。对不起我的英语:]返回“some_ip”的作品,因为它返回一个适合地理编码器的字符串。你不能从模型中调用request.ip方法。请求模型层无法访问。所以你需要在某处保存用户ip。 – 2011-06-07 20:12:02
感谢您的帮助!我以不同的方式解决了它(使用attr_accesor)。 – 2011-06-07 20:18:21