如何检查`request.remote_ip`

时间:2017-05-05 09:18:06

标签: 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_ip == ENV['REMOTE_SERVER_IP']必定是问题所在。

我确认ENV['REMOTE_SERVER_IP']在rails控制台中有正确的值,但我不知道如何检查request.remote_ip是否具有正确的值。

如果不是请求,我可以在本地环境中使用binding.pry

如何以交互方式检查request.remote_ip值?

1 个答案:

答案 0 :(得分:0)

我想你最好的一点是确保request.remote_ip值等于ENV['REMOTE_SERVER_IP']

作为检查的快速解决方法,您可以这样做(丑陋但有效):

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

当然,请确保config.log_levelinfo