2017-05-05 2 views
0

Ich möchte eine Aktion von einem anderen Server auslösen. Dies ist der Code dafür im Controller.So überprüfen Sie `request.remote_ip`

Dieser Code funktioniert, wenn keine if-Anweisung vorhanden ist. So muss das Problem sein.

Ich bestätigte die ENV['REMOTE_SERVER_IP'] hat einen richtigen Wert in Schienen Konsole, aber ich konnte nicht herausfinden, wie zu überprüfen, ob request.remote_ip hat richtigen Wert.

Wenn es nicht um eine Anfrage geht, kann ich binding.pry in der lokalen Umgebung verwenden.

Wie kann ich den Wert request.remote_ip interaktiv überprüfen?

+0

Überprüfen Sie den Datentyp des request.remote_ip & ENV ['REMOTE_SERVER_IP'] –

+0

Sie können es in der Protokolldatei –

+0

sehen Sie können dies für die Protokollierung 'p" HI --------- === tun ==== >>> # {request.remote_ip} UND # {request.remote_ip.class} "' –

Antwort

0

Ich denke, die beste Bit sicher zu machen ist, dass request.remote_ip Wert ENV['REMOTE_SERVER_IP']

Als schnelle Abhilfe für Inspektion Gleichen ist, dies zu tun (hässlich, aber funktioniert):

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

Dann in Ihrem Server (davon ausgehen, es ist das Staging-Server):

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

natürlich, stellen sie sicher, dass die config.log_level ist info zum Beispiel.

+1

Großartig! Ich könnte 'ENV ['REMOTE_SERVER_IP']' 'sehen, wenn ich' rails console' verwende, aber die Umgebungsvariable wird nicht 'Einhorn'-Instanz geladen. Nach dem Neustart "Einhorn" Instanz funktioniert es gut. – ironsand

Verwandte Themen