相关疑难解决方法(0)

如何从Rails中访问Rack环境?

我有一个看起来像这样的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)

ruby rack middleware ruby-on-rails

31
推荐指数
2
解决办法
2万
查看次数

标签 统计

middleware ×1

rack ×1

ruby ×1

ruby-on-rails ×1