Ruby等价于php_sapi_名称

Ruby等价于php_sapi_名称,php,ruby,Php,Ruby,确定是否在CLI中运行(如php中的php_sapi_name函数)与处理HTTP请求的Ruby约定是什么 我在想我可以测试请求是否被定义,或者其他一些推理方法,但我必须遵循一个惯例 这里没有标准化的方法,因为Ruby是一种脚本语言,可能嵌入或不嵌入web服务器进程。它也可以作为一个断开连接的后台进程运行,尽管它不一定是面向web的 在HTTP环境中,通常会定义像ENV['SERVER\u NAME']这样的变量,以及来自HTTP环境的其他变量。这些将不会出现在命令行环境中 一般来说,最好测试您

确定是否在CLI中运行(如php中的php_sapi_name函数)与处理HTTP请求的Ruby约定是什么


我在想我可以测试请求是否被定义,或者其他一些推理方法,但我必须遵循一个惯例

这里没有标准化的方法,因为Ruby是一种脚本语言,可能嵌入或不嵌入web服务器进程。它也可以作为一个断开连接的后台进程运行,尽管它不一定是面向web的

在HTTP环境中,通常会定义像
ENV['SERVER\u NAME']
这样的变量,以及来自HTTP环境的其他变量。这些将不会出现在命令行环境中


一般来说,最好测试您是否在机架或Rails中运行,或者使用任何特定的web框架与HTTP层进行接口。例如,
defined?(Rails)
将指示是否加载了Rails,尽管对于
rake
任务和
Rails控制台
类型使用也是如此。

您如何定义CLI?只是IRB?那个HTTP请求呢?你们只关心机架吗?这是一个很好的澄清问题。我有基于ActiveRecord/Rails的后台“批处理”作业,这些作业不以用户为中心(不需要用户上下文),但仍然以Railsy方式运行。他们不是IRB。事实上,如果它不是一个Web触发的请求,我想用它作为二进制判定。在未来,它们也可能被作为Rake作业启动。