我正在尝试从控制器获取运行rails应用程序的计算机的主机名。
考虑到它应该适用于Windows和Linux,最好的方法是什么?
答案 0 :(得分:81)
您所要做的就是查看控制器中的请求对象:
request.host_with_port
或者如果你不想要这个端口,只需
request.host
答案 1 :(得分:27)
总是:
require 'socket'
...
Socket.gethostname
我没有方便用来测试它的Windows盒子,但是文档没有提到它是* nix特定的。
注意:Rails 4不需要require语句,也可能是其他Rails版本。如果您在没有Rails的情况下使用纯Ruby,则需要它。
答案 2 :(得分:6)
使用反引号和命令hostname
current_host = `hostname`
这会将命令发送到shell,并返回主机名。至少可以使用:Debian Linux,Windows,Solaris。
答案 3 :(得分:0)
如果您需要从协议到端口的完整域路径,请尝试:
df3 <-
structure(c(5.33977753674163, 16.7094706871338, 4.23758718121094,
12.6275105554044, 9.04107044295747, -0.685470517077967, 16.7897917316432,
-4.25347907370252, 13.4032906994389, 12.4040556704001, 2.51260901116279,
16.0324845504096, 5.50096403268869, 12.0305530420621, 11.8057011378596,
1.00715758856066, 15.6131178756706, 2.48509953100854, 11.9807372642204,
7.93896000301356), .Dim = 5:4, .Dimnames = list(c("hsa-let-7a-3p",
"hsa-let-7a-5p", "hsa-let-7b-3p", "hsa-let-7b-5p", "hsa-let-7c-5p"
), c("9446", "9450", "9473", "9484")))