我似乎无法在一个预处理的机架中间件中附加到 ARGV。任何人都知道当中间件存在时机架如何处理 ARGV?如何在我的中间件中修改 ARGV?必须有办法做到这一点,我完全不知所措。
ARGV << "--debug"
ARGV << "--host" << "localhost"
class Pre
def initialize(app)
@app = app
end
def call(env)
if some_env_related_logic
ARGV << "--test"
end
@app.call(env)
end
end
require 'Somecommand'
use Pre
run Somecommand
现在,“--test”参数不会添加到 Somecommand 中可用的 ARGV。
更新:
看来 Somecommand 应用程序在初始化方法中使用了 ARGV。这发生在第一个中间件之前。所以现在的问题是:我如何创建一个调用第二个机架应用程序的机架应用程序?因为我需要在实例化秒架应用程序之前评估 ENV。