Ruby on rails 如何检查'request.remote_ip`
我想从另一台服务器触发一个操作。这是控制器中的代码Ruby on rails 如何检查'request.remote_ip`,ruby-on-rails,request,Ruby On Rails,Request,我想从另一台服务器触发一个操作。这是控制器中的代码 def trigger_from_remote if request.remote_ip == ENV['REMOTE_SERVER_IP'] # Do something end head 200, content_type: 'text/html' end 如果没有if语句,则此代码有效。因此request.remote\u ip==ENV['remote\u SERVER\u ip']一定是问
def trigger_from_remote
if request.remote_ip == ENV['REMOTE_SERVER_IP']
# Do something
end
head 200, content_type: 'text/html'
end
如果没有if语句,则此代码有效。因此request.remote\u ip==ENV['remote\u SERVER\u ip']
一定是问题所在
我确认了ENV['REMOTE\u SERVER\u IP']
在rails控制台中的值是正确的,但我不知道如何检查请求。REMOTE\u IP
的值是否正确
如果不是关于请求,我可以在本地环境中使用binding.pry
如何以交互方式检查
请求.远程ip
值 我想您最好的一点是确保请求.remote\u ip
值等于ENV['remote\u SERVER\u ip']
作为检查的快速解决方法,您可以执行以下操作(丑陋但有效):
当然,例如,确保
config.log_level
是info
。检查request.remote_ip和ENV['remote_SERVER_ip']的数据类型。您可以在日志文件中看到它。您可以对p“HI-----=====>>{request.remote_ip}和{request.remote ip.class}进行日志记录
实际上它不是一个数据类型案例:检查方法实现,它总是返回字符串。太好了!如果使用rails控制台
,我可以看到ENV['REMOTE\u SERVER\u IP']
,但环境变量未加载unicorn
实例。重新启动unicorn实例后,它工作正常。
def trigger_from_remote
Rails.logger.info "<<DEBUG: #{request.remote_ip} || #{ENV['REMOTE_SERVER_IP']}"
.
.
end
app_directory$ tail -f log/staging.log | grep DEBUG