Since all controllers will need a constructor that accepts the env hash, it's better to pull it up in a base class. To stick to the Rails naming conventions, we'll call the base class ApplicationController.

Add the following code in controllers/application_controller.rb file.

# controllers/application_controller.rb

class ApplicationController
  attr_reader :env

  def initialize(env)
    @env = env
  end
end

Now our ArticlesController class can extend from this class and we can remove the redundant code.

# controllers/articles_controller.rb

require_relative 'application_controller'

class ArticlesController < ApplicationController
  def index
    'All Articles'
  end
end

Restart the application and make sure everything is still working as expected.

Nice, clean, and tidy. We have a functioning controller structure which puts us well on the path to implementing views and generating dynamic HTML using the ERB gem, which we'll explore in the next post in the series.