Where should I place my middleware file for Rails 5.1?

Look like rails wasn't looking for it.

I had to do the following for it to work.

Dir["./lib/middleware/*.rb"].each do |file|
  require file
end

Create a folder app/middlewares and create your middleware file in this folder.

But unfortunately The app/middlewares folder is not loading even if I added to the load paths in Rails v5.2.2

config.autoload_paths << "#{Rails.root}/app/middlewares"
config.eager_load_paths << "#{Rails.root}/app/middlewares"

So you can use require explicitly as follows, add this line in application.rb

require_relative '../app/middlewares/my_middleware'

and load middleware:

config.middleware.use MyMiddleware

and call rake middleware to see the middleware stack.