Как получить request.location в локальной среде с помощью Rails

Я знаю, что этот вопрос задавали много раз раньше, но я проверил ответы, и он не работает для меня, как должен. Мне нужно подделать 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

Но это не работает, потому что, когда я делаю запрос в приложении searchsController ap request.location, он продолжает давать мне объект с IP-адресом «127.0.0.1». и долгота и широта = 0 очевидно. Но если я делаю request.remote_ip, консоль дает мне правильный IP-адрес внутри строки «12.34.567.890». Я не понимаю, почему.

Это код контроллера/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

Вот что выдает мне консоль, когда я выполняю поиск

"12.34.567.890" (Правильный ip) #"127.0.0.1", "город"=>"", "код_региона"=>"", "имя_региона"=>"", "код города"=>"", " почтовый индекс"=>"", "широта"=>"0", "долгота"=>"0", "название_страны"=>"Зарезервировано", "код_страны"=>"RD"}, @cache_hit=nil> Выполнено 500 Внутренняя ошибка сервера за 140 мс


person David Dsr    schedule 16.04.2015    source источник
comment
Вы пытались добавить следующий метод в класс ActionDispatch::Request. def location '81.38.174.158' end   -  person Amit Sharma    schedule 16.04.2015
comment
Я пробовал это, но определял remote_ip вместо определения местоположения. В любом случае, я только что пробовал с определением местоположения, и если я делаю определение местоположения «81.38.174.158», конец и я делаю ap request.location, дает мне только это => «81.38.174.158»   -  person David Dsr    schedule 16.04.2015
comment
тогда я думаю, что ваша проблема решена?   -  person Amit Sharma    schedule 16.04.2015
comment
нисколько. request.location — это хэш с несколькими ключами и значениями, например: =›, zipcode=›, latitude=›0, longitude=›0, country_name=›Reserved, country_code=›RD}, @cache_hit=nil› Если вы заметили, что мне нужно установить IP-адрес на 79.108.199.230, но он сохраняется давая мне широту = 0 и местоположение = 0, когда я ожидал дать мне правильные координаты того, где я сейчас   -  person David Dsr    schedule 16.04.2015
comment
Хорошо, я узнал, что происходит. Это была проблема ограничения времени в Geocoder .com/questions/18285240/ Большое спасибо¡¡   -  person David Dsr    schedule 16.04.2015