我想从另一台服务器触发一个动作。这是控制器中的代码。
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
值?
答案 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_level
为info
。