Я пытаюсь получить имя хоста машины, на которой приложение направляющих работает от контроллера.
Каков был бы лучший способ сделать это принятие во внимание, что он должен работать над обоими окнами и Linux?
Всегда есть:
require 'socket'
...
Socket.gethostname
У меня нет Windows box, с помощью которого можно это проверить, но в документах не упоминается о его *никсовой специфике.
Примечание: Требование не является обязательным для Rails 4, а также, возможно, для других версий Rails. Оно требуется, если вы делаете обычный Ruby без Rails.
Используйте обратные кавычки и команду hostname
current_host = `hostname`
Это отправляет команду в оболочку и возвращает имя хоста. Работает как минимум на: Debian Linux, Windows, Solaris.
Все, что вам нужно сделать, это посмотреть на объект запроса в вашем контроллере:
request.host_with_port
или, если вам не нужен порт, просто
request.host