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