Search code examples
rubyrequestracksuper

How does the Rack::Request #params method work in regard to 'super'?


# File 'lib/rack/request.rb', line 19

def params
  @params ||= super
end

https://www.rubydoc.info/gems/rack/Rack/Request#params-instance_method

I know the basics of super, but I don't know how it works here: from which parent class does it inherit #params?


Solution

  • When you include a module in Ruby, it is injected into the inheritance chain.

    Rack::Request includes Rack::Request::Helpers which implements Rack::Request::Helpers#params.