Search code examples
ruby-on-railsrequestlifecycleactiondispatch

Rails, how do you access the raw request data at the absolute lowest level?


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?


Solution

  • 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