从 Rails 控制器获取主机名
我试图从控制器获取运行 Rails 应用程序的机器的主机名。
考虑到它应该在 Windows 和 Linux 上工作,最好的方法是什么?
I am trying to get the hostname of the machine which a rails application is running on from the controller.
What would be the best way to do this taking into account it should work on both windows and linux?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您所要做的就是查看控制器中的请求对象:
或者如果您不需要该端口,只需
All you have to do is look at the request object in your controller:
or if you don't want the port, just
总是有这样的情况:
我没有方便的 Windows 盒子来测试这个,但文档没有提到它是 *nix 特定的。
注意:require 语句对于 Rails 4 来说不是必需的,可能其他 Rails 版本也是如此。如果您在不使用 Rails 的情况下使用普通 Ruby,则这是必需的。
There's always:
I've got no Windows box handy with which to test this, but the docs make no mention of it being *nix specific.
Note: The require statement is not necessary for Rails 4, and probably other Rails versions as well. It is required if you are doing plain Ruby without Rails.
使用反引号和命令
hostname
这会将命令发送到 shell,并返回主机名。至少适用于:Debian Linux、Windows、Solaris。
Use backticks and the command
hostname
This sends the command to the shell, and returns the hostname. Works on at least: Debian Linux, Windows, Solaris.
如果您需要从协议到端口的完整域路径,请尝试:
If you need the full domain path from protocol to port, try: