When is the Rails request
object available at the earliest time during the request lifecycle? Essentially, when is the request first available as a request object, and in which object? ActionDispatch
?
Can you access request parameters from Tester::Application
? If so, how? If not, what about using the environment? When is that information set?
The Rack webserver creates the request
object and then ActionDispatch inherits from it. So essentially, you'd be able to access the Rack::Request
or ActionDispatch::Request
objects within the middleware of the app.
Rack::Request
https://github.com/rack/rack/blob/master/lib/rack/request.rb
ActionDispatch::Request
https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/http/request.rb
A middleware is probably the best way to access this data. I made a simple gem for setting up a raw HTTP request/response log in Rails using the classes mentioned in the accepted answer.
来源:https://stackoverflow.com/questions/8422716/rails-how-do-you-access-the-raw-request-data-at-the-absolute-lowest-level