我正在尝试从控制器中获取运行 rails 应用程序的计算机主机名。
考虑到它应该在 Windows 和 Linux 上都能工作,最好的方法是什么?
我正在尝试从控制器中获取运行 rails 应用程序的计算机主机名。
考虑到它应该在 Windows 和 Linux 上都能工作,最好的方法是什么?
你只需要在你的控制器中查看请求对象:
request.host_with_port
或者如果您不想要端口,只需
request.host
常见的做法是:
require 'socket'
...
Socket.gethostname
我手头没有 Windows 电脑来测试这个,但文档中没有提到它是*nix特有的。
注意:对于 Rails 4 及其他版本,require语句并非必需。只有在不使用Rails的纯Ruby环境下才需要。
使用反引号和命令hostname
current_host = `hostname`
这将发送命令到 shell 并返回主机名。适用于至少以下系统:Debian Linux、Windows、Solaris。
full_domain_path = request.env['rack.url_scheme'] + '://' + request.host_with_port