Ruby on rails 如何从导轨内部设置机架环境变量
Ruby on rails 如何从导轨内部设置机架环境变量,ruby-on-rails,Ruby On Rails,rack cachegem依赖于@env['rack.errors']设置来记录错误消息: 78: # write log message to rack.errors 79: if verbose? 80: binding.pry 81: message = "cache: [%s %s] %s\n" % 82: [@request.request_method, @reques
rack cache
gem依赖于@env['rack.errors']
设置来记录错误消息:
78: # write log message to rack.errors
79: if verbose?
80: binding.pry
81: message = "cache: [%s %s] %s\n" %
82: [@request.request_method, @request.fullpath, trace]
=> 83: @env['rack.errors'].write(message)
84: end
它当前设置为@env['rack.errors']#⇒ #代码>
我需要将其更改为使用Rails.logger
。显而易见的机会是侵入rack cache
初始化器RAILS\u cache.logger=…
。我想知道是否有一种从Rails
访问rack
环境的通用方法,比如(伪代码):
机架环境只能在请求上下文中访问,因此在控制器或视图中
访问您可以使用的环境
request.env['whatever']
修改机架环境时要小心,因为Rails堆栈的其他部分可能依赖它。看看这篇文章是否有帮助@BryceJohnston我最终被迫编写自己的中间件,以覆盖覆盖默认机架的最简单任务。错误IO
。我希望有一些默认设置。当然,我能够连接我自己的中间件来入侵环境,但对我来说,这听起来既有黑客的味道,又过于工程化。在控制器中访问它对我来说毫无意义,因为我要覆盖默认的日志记录;在这个阶段还没有控制器。
request.env['whatever']