Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何检查'request.remote_ip`_Ruby On Rails_Request - Fatal编程技术网

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