我知道这个问题之前已被多次询问过,但我已经检查了答案,但它对我来说并不适用。我需要假装我的localhost的ip地址不是' 127.0.0.1'但是' 12.34.567.890'代替。我使用Mongoid搜索,我的最终目标是获得distance_between([me],[spot.location])。所以我需要我的真实坐标。
在互联网上,我找到了这个解决方案:
module ApplicationHelper
class ActionDispatch::Request
def remote_ip
'81.38.174.158'
end
end
end
但它不起作用,因为当我在我的searchController ap request.location中,它一直给我一个ip' 127.0.0.1'的对象。经度和纬度= 0。但是,如果我执行request.remote_ip,控制台会在字符串中为我提供正确的IP' 12.34.567.890'。我不明白为什么。
这是controller / searches_controller.rb的代码
class SearchesController < ApplicationController
def index
ap request.remote_ip
ap request.location
@user = current_user if current_user
@spots = Spot.full_text_search(params[:query])
@spots = Spot.order_by_distance @spots
end
end
这是我执行搜索时控制台给我的东西
&#34; 12.34.567.890&#34; (右侧ip) #&#34; 127.0.0.1&#34;,&#34; city&#34; =&gt;&#34;&#34;,&#34; region_code&#34; =&gt;&#34;&# 34;,&#34; region_name&#34; =&gt;&#34;&#34;,&#34; metrocode&#34; =&gt;&#34;&#34;,&#34;邮政编码&#34 ; =&gt;&#34;&#34;,&#34;纬度&#34; =&gt;&#34; 0&#34;,&#34;经度&#34; =&gt;&#34; 0&# 34;,&#34; country_name&#34; =&gt;&#34;保留&#34;,&#34; country_code&#34; =&gt;&#34; RD&#34;},@ cache_hit = nil&gt; 在140毫秒内完成500内部服务器错误