Как перегрузить или monkeypatch Request.remote_ip или Request.ip? - PullRequest
0 голосов
/ 06 марта 2012

Мне нужно пропатчить или перегрузить Request.remote_ip (или Request.ip будет лучше, так как я вижу некоторые упоминания о том, что его следует использовать вместо remote_ip), чтобы он работал как обычно, но если в заголовке указано CF-Connecting-IP, он вернет этот IP-адрес, а не тот, который обычно обнаруживает.

Как правильно настроить этот патч с точки зрения определения класса и метода?

По сути, я пытаюсь просто вернуть следующее для каждого запроса:

headers["CF-Connecting-IP"] || remote_ip

1 Ответ

1 голос
/ 06 марта 2012

Я бы не стал исправлять метод по запросу.Вместо этого я бы сделал вспомогательный метод в вашем контроллере приложений, который будет делать именно то, что вы только что опубликовали:

class ApplicationController < ActionController::Base
  ...

  def connecting_ip
    headers["CF-Connecting-IP"] || request.remote_ip
  end
end

И просто используйте connect_ip там, где это важно.

...