我需要修补或重载Request.remote_ip(或者Request.ip会更好,因为我看到有人提到应该使用它而不是remote_ip),这样它就可以正常运行,但如果CF-Connecting-IP
在标题,它将返回此IP地址而不是它通常检测到的IP地址。
如何根据类和方法定义适当设置此修补程序?
基本上我只想为每个请求返回以下内容:
headers["CF-Connecting-IP"] || remote_ip
答案 0 :(得分:1)
我不会根据请求修补方法。相反,我会在你的应用程序控制器中创建一个辅助方法,它完全按照你刚发布的方式执行:
class ApplicationController < ActionController::Base
...
def connecting_ip
headers["CF-Connecting-IP"] || request.remote_ip
end
end
只需在任何重要的地方使用connecting_ip。