我试图从控制器获取运行rails应用程序的机器的主机名.
考虑到它应该在Windows和Linux上工作,最好的方法是什么?
您所要做的就是查看控制器中的请求对象:
request.host_with_port
或者,如果你不想要这个端口,那就是
request.host
总是:
require 'socket' ... Socket.gethostname
我没有方便用来测试它的Windows盒子,但是文档没有提到它是*nix特定的.
注意:Rails 4不需要require语句,也可能是其他Rails版本.如果您在没有Rails的情况下使用纯Ruby,则需要它.
使用反引号和命令 hostname
current_host = `hostname`
这会将命令发送到shell,并返回主机名.至少可以使用:Debian Linux,Windows,Solaris.