我在生产服务器的项目轨道中安装了http://www.rubygeocoder.com/,但我的生产服务器中的这个gem对我来说效果不好......
我正在使用mongoid。
我在开发环境中的视图中编写这些方法并且工作正常:
<%= request.ip %>
<%= request.location.city %>
<%= request.location.country %>
我得到:127.0.0.1 Reserved
这个结果通常是因为我在localhost工作。
然而,在linode的生产服务器中使用capistrano进行部署后,我得到了这些方法的错误,我可以在生产日志中看到下一个错误:
Completed 500 Internal Server Error in 909ms
ActionView::Template::Error (undefined method `location' for #<ActionDispatch::Request:0x00000005aa8570>):
为什么我在生产服务器中为这些方法出现此错误?
谢谢!
答案 0 :(得分:6)
问题得到解决。感谢alexreisner https://github.com/alexreisner/geocoder/issues/239。
安装此gem后,必须重新启动生产服务器。如果你想让地理编码器工作正常。
重新启动我的linode服务器之后,这个gem对我来说很好用:D。
非常感谢!
答案 1 :(得分:0)
如果您正在开发中尝试使用
request.remote_ip
而不是:
request.ip
我不确定它是否会起作用