确定您是在CLI中运行(如PHP中的php_sapi_name函数)与处理HTTP请求的Ruby约定是什么?
我在想我可以测试请求是否被定义,或者其他一些推理方法,但是我必须遵循一个约定。
答案 0 :(得分:1)
此处没有标准化方法,因为Ruby是一种脚本语言,可能会也可能不会嵌入到Web服务器进程中。它也可能作为一个断开连接的后台进程运行,尽管它不一定是面向Web的。
在HTTP环境中,您通常会将变量定义为ENV['SERVER_NAME']
,而其他变量则来自CGI specification。这些不会出现在命令行环境中。
通常,最好测试您是在Rack或Rails中运行,还是使用任何特定的Web框架来与HTTP层进行交互。例如,defined?(Rails)
将指示是否加载了Rails,但对于rake
任务和rails console
类型用法也是如此。