2017-05-05 17 views
0

別のサーバーからアクションをトリガーしたい。これはコントローラ内のコードです。`request.remote_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_ip == ENV['REMOTE_SERVER_IP']が問題である必要があります。

私はENV['REMOTE_SERVER_IP']がレールコンソールに正しい値を持っていることを確認しましたが、request.remote_ipが正しい値を持っているかどうかを調べる方法を見つけることはできません。

ご要望がない場合は、binding.pryをローカルエンバイロメントで使用できます。

request.remote_ipの値を対話形式で確認するにはどうすればよいですか?あなたに続いて

def trigger_from_remote 
    Rails.logger.info "<<DEBUG: #{request.remote_ip} || #{ENV['REMOTE_SERVER_IP']}" 
    . 
    . 
end 

+0

request.remote_ip&ENV ['REMOTE_SERVER_IP'] –

+0

のデータ型を確認すると、ログファイル –

+0

に表示されます。これは 'p 'のログ記録に使用できます。HI --------- === ==== >>> –

答えて

0

私はあなたの最高のビットはrequest.remote_ip値であることを確認することです推測は、検査のための迅速な回避策としてENV['REMOTE_SERVER_IP']

に等しいあなたは、この(醜いが、作品を)行うことができますサーバー(それはステージングサーバーだと仮定):もちろん

app_directory$ tail -f log/staging.log | grep DEBUG 

config.log_levelがあることを確認してください例えば10である。

+1

素晴らしい!私は 'rails console'を使うと' ENV ['REMOTE_SERVER_IP'] 'を見ることができましたが、環境変数に' unicorn'インスタンスがロードされていません。再起動後、 'unicorn'インスタンスは正常に動作します。 – ironsand

関連する問題