Думаю, лучший способ - определить собственный инициализатор в папке config/initializers/
.
Пример:
Создать my_initializer.rb
в папке config/initializers/
со следующим содержимым:
require 'socket'
def local_ip
orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true # turn off reverse DNS resolution temporarily
UDPSocket.open do |s|
s.connect '64.233.187.99', 1
s.addr.last
end
ensure
Socket.do_not_reverse_lookup = orig
end
SERVER_IP = local_ip
и в некоторых контроллерах использовать эту константу:
log_it "Server IP address is: #{SERVER_IP}"