Welcome! This is a curated roadmap to learn Ruby on Rails from scratch using the official Rails Guides.
Whether you're a beginner or brushing up, follow this checklist to learn Rails step by step.
π Why this roadmap?
I created it to help beginners stay focused, avoid overwhelm, and learn Rails the right way β using official, trusted resources.
You can fork this repo, and track your own progress too.
π I also write about programming on my blog: codecurious.dev
Check it out for articles, tips, and beginner-friendly programming content.
- Getting Started with Rails | Build a blog app and learn the basics of MVC, routing, controllers, models, views, and forms.
- Routing from the Outside In | Learn how URLs map to controller actions. Master resources, custom routes, and nested routes.
- Action Controller Overview | Understand what happens inside a controller, how params work, filters (before_action), and rendering/redirecting.
- Action View Overview | Learn ERB templates, helpers, layouts, and partials for rendering HTML.
- Active Record Basics | Understand how Rails interacts with the database using models and ORM.
- Active Record Migrations | Learn how to structure your database using migrations.
- Active Record Validations | Ensure data quality using built-in validations.
- Active Record Associations | Master has_many, belongs_to, has_one, and has_many :through.
- Form Helpers | Build forms that tie to models. Essential for creating/editing records.
- Layouts and Rendering in Rails | Go deeper into layouts, partials, and rendering flow.
- Active Record Query Interface | Learn how to query your database using ActiveRecord (where, joins, includes, etc.)
- Action Mailer Basics | Send emails from your app.
- Active Job Basics | Learn how to run background jobs (email, long tasks, etc.).
- Working with JavaScript in Rails | Learn about Turbo, Stimulus, and UJS.
- Security Guide | Critical best practices to protect your app from common vulnerabilities.
- Active Support Core Extensions | Understand useful Ruby extensions added by Rails (.blank?, .present?, .try, etc.).
- Caching with Rails | Improve performance with fragment, page, and low-level caching.
- Testing Rails Applications | Learn built-in testing tools and test structure (models, controllers, etc.)
- Internationalization (i18n) | Make your app support multiple languages.
- Action Cable Overview (WebSockets) | Build real-time features using WebSockets.
- The Rails Command Line | Learn all the Rails CLI tools available (rails generate, rails db:migrate, etc.).
- Autoloading and Reloading Constants | Understand Zeitwerk and how Rails loads your code.
β
Fork this repo
βοΈ Mark checkboxes as you learn
π’ Share your progress
π¨βπ» Explore extra resources at codecurious.dev
- π Rails Guides β Official tutorials and documentation
- π Rails API Docs β In-depth reference for all classes and methods
- π§βπ« codecurious.dev β My blog with Ruby, Rails, JavaScript & web development articles
Feel free to open a pull request to:
- Suggest learning resources
- Add links to beginner projects
- Improve formatting or structure
β Star this repo if it helped you.
π© Share it with friends who are learning Rails!
Happy coding! π