我有一个看起来像这样的Rack应用程序:
class Foo
def initialize(app)
@app = app
end
def call(env)
env["hello"] = "world"
@app.call(env)
end
end
Run Code Online (Sandbox Code Playgroud)
将我的Rack应用程序挂钩到Rails后,如何env["hello"]从Rails中获取访问权限?
更新:感谢Gaius的回答.Rack和Rails允许您在请求期间或会话持续时间内存储内容:
# in middleware
def call(env)
Rack::Request.new(env)["foo"] = "bar" # sticks around for one request
env["rack.session"] ||= {}
env["rack.session"]["hello"] = "world" # sticks around for duration of session
end
# in Rails
def index
if params["foo"] == "bar"
...
end
if session["hello"] == "world"
...
end
end
Run Code Online (Sandbox Code Playgroud)