When your upgraded controller and filter code raises yet another exception, it's because Rails changed under you. When you apply a few tweaks you Googled and it's only mostly fixed, you know there's a better way. There is. You can learn the fundamentals of every Ruby web framework in a future-proof way ... by learning the layer that Rails is building on . To learn Rails the way the experts do, you'll have to learn Rack, Ruby's portable HTTP API. That's hard. The Rack documentation is often wrong and frequently gives you only the name of a method or class, not what in the world it actually does. Rebuilding Rails will take you through building a real, functional Rack framework . Building on Rack is the only way to really understand Rack.