Our Ruby on Rails starter pack is aimed at those who’ve been interested in this popular web application framework but have never gotten around to trying it out because they didn’t know where to start. Compared to traditional Ruby on Rails tutorials, this starter pack doesn’t hold your hand, teaching you the basics step by step. Instead, it serves as a general introduction to Ruby on Rails and as a signpost with the directions to some of the most useful Ruby on Rails resources on the web. By the time you finish it, you’ll know exactly which steps to take to go from a Ruby on Rails newbie to pro.
What is Ruby on Rails?
According to Wikipedia, Ruby on Rails, often just called Rails, is a server-side web application framework written in Ruby under the MIT License. The framework was created by David Heinemeier Hansson, a partner at the web-based software development firm Basecamp.
Ruby on Rails played a significant role in helping Basecamp shift from web design to web application development. Hansson and others at the company found existing programming languages, such as PHP and Java, unfit for their needs, deciding to, instead, create a new web application framework, initially only for internal use. They finally decided to publicly release Ruby on Rails in 2004, and the rest is history.
Technically, Ruby on Rails is a package library (a RubyGem, to be precise) for the Ruby programing language, as Daniel Kehoe of the RailsApps project explains. Ruby on Rails combines Ruby with the front-end trifecta—HTML, CSS, and JavaScript—to create web applications that run on a web server, not in the web browser.
Instead of introducing exotic new ideas, Rails is founded on pragmatism and established conventions for easier collaboration and maintenance. “You could develop a web application at least ten times faster with Rails than you could with a typical Java framework”, believes Paul Piwowarski of the University of Kentucky.
Some of the more noteworthy characteristics of Rails include:
- Omakase: It’s often said that Rails is omakase. This Japanese phrase means “I’ll leave it to you”, and it’s often used by customers at sushi restaurants who want the chef to make a selection for them. Hansson famously said, “A team of chefs picked out the ingredients, designed the APIs, and arranged the order of consumption on your behalf according to their idea of what would make for a tasty full-stack framework. The menu can be both personal and quirky. It isn’t designed to appeal to the taste of everyone, everywhere”.
- Opinionated software: The term “opinionated software” is used to expressed the same idea as the phrase “omakase”. Simply put, it means that Rails works best when the developer sticks to the beaten path, instead of trying to do things differently. Not that they can’t be done differently–they can–but it’s almost always quicker and better to do things the Rails way.
- Convention over configuration: Rails makes many assumptions based on convention. Rails developers are deeply familiar with these conventions (like when a developer knows that a model object named “User” will automatically save data to a database table named “users”), and they rely on them to save time and avoid mistakes.
- Don’t repeat yourself: Formulated by Andy Hunt and Dave Thomas, this software development principle preaches the avoidance of duplication—not only code duplication but also process duplication. Rails embraces automatic testing as well as software design patterns that introduce abstraction and indirection.
When looked at from the bird’s eye view, it becomes apparent that Rails is more than a software library. Rails sits at the center of a vast ecosystem of building blocks used by web developers to rapidly build complex web projects. This ecosystem is based on volunteerism, enthusiasm, and love for the web.
Ruby vs Ruby on Rails
The Ruby programming language was developed by Yukihiro Matsumoto, better known as Matz, and released in 1995 on Japanese domestic newsgroups. The language now ranks among the top ten most popular programming languages, not in small part also thanks to Ruby on Rails.
Ruby is a general-purpose, high-level programming language that combines Smalltalk’s conceptual elegance with Python’s ease of use and Perl’s pragmatism. “As a language-maniac and OO fan for 15 years, I really wanted a genuine object-oriented, easy-to-use scripting language. I looked for it but couldn’t find one. So, I decided to make it”, said Yukihiro Matsumoto.
Ruby on Rails is a server-side, model–view–controller Ruby framework for web application development. It adds extra code to Ruby to simplify the development of complex web projects.
Do You Need to Study Ruby to Learn Rails?
If you’re reading our starter pack because you want to learn Rails as quickly as possible, you may find the idea of having to learn another programming language just to become proficient at Rails discouraging, and we wouldn’t blame you for feeling that way. The good news is that you don’t need to learn Ruby if you don’t want to. That said, even a basic grasp of Ruby can make learning Rails much easier, especially in the beginning. What’s more, as you learn Rails, you’ll also naturally develop Ruby skills, so it’s not like there are thousands of Rails pros without a clue how to create a hello world program in Ruby.
Ruby on Rails vs PHP
According to the official website, “PHP is an open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML”. PHP was created by Rasmus Lerdorf, a Danish-Canadian programmer, and first released in 1995. The three-letter name originally stood for Personal Home Page, but it’s now a recursive initialism for PHP: Hypertext Preprocessor.
One fascinating thing about PHP is the fact that the language was developed without a written formal specification until 2014, in stark contrast to Ruby on Rails, which is heavily standardized, emphasizing the convention over configuration principle.
PHP is generally considered to be easier than Ruby and Ruby on Rails, and it also has a larger user base as well as more learning resources. On the other hand, the automated approach to software development embraced by Rails leads to faster deployment speeds and greater development joy.
What Is Ruby on Rails Used for?
Today, Ruby on Rails is one of the most popular frameworks for building complex, scalable web applications. In GitHub’s Octoverse 2016, Ruby ranked as the fourth most popular language used on GitHub, with Python stealing its place among the top three most popular languages by a very small margin.
Ruby on Rails is widely popular in Silicon Valley, adopted by some of the most successful startups that have emerged during the pay several years. The large collection of third-party libraries and focus on test automation means that both startups and everybody else can create powerful applications and deliver more features in less time.
Some of the most prominent startups that are using Ruby on Rails include Airbnb, Basecamp, GitHub, Twitch, and Kickstarter, just to name a few.
How to Learn Ruby on Rails?
Ruby on Rails is a fantastic first programming language for aspiring web developers. Thanks to the collective effort of its massive community, there’s no shortage of excellent tutorials, books, and other resources that you can use to go from a beginner to pro in a record time.
To get you started, we’ve put together a list of Ruby on Rails learning resources, curated to suit a variety of different learning styles. If one approach to teaching how to develop web applications using Ruby on Rails ends up not working for you, don’t waste your time and just move onto a different one.
Best Ruby on Rails Tutorials
Online Ruby on Rails tutorials are perfect for those who like the convenience of hyperlinks and easily copiable code snippets. Popular tutorials are frequently updated to reflect the feedback their authors receive from the community, ensuring they are always up to date and free of errors.
Rails Guides: Getting Started with Rails
Getting Started with Rails from Rails Guides is an always-up-to-date, in-depth tutorial that covers everything from Ruby on Rails installation to application creation to the basic principles of the MVC (Model, View, Controller) software architecture pattern and much more. When you finish it, you can transition to more advanced tutorials from Rails Guides with just a few mouse clicks. This tutorial is best suited for someone who already has some programming experience or is willing to do some Googling on the side.
The Odin Project
The purpose of The Odin Project is to empower aspiring web developers to learn in a shared, interactive environment by following a proven path to learning success, instead of wasting time doing random stuff that doesn’t lead anywhere. The Ruby on Rails course created by Odin’s expert educators starts with an introduction to Sinatra, a lightweight Rails framework, and, lesson-by-lesson, builds you up until you not only understand what Rails is all about but can create software that’s actually useful.
GoRails
What started as a way to learn web development and the problem-solving strategies behind it has evolved into one of the most comprehensive training programs for Rails developers, helping over 12,000 developers improve their Ruby on Rails skills. GoRails is a paid learning environment with a private Slack channel where members can network and exchange ideas, a comprehensive database of screencasts that dive into many different areas of building web apps, and a sophisticated progress tracking to keep members motivated.
RubyMonk
RubyMonk takes a zen approach to teaching Ruby. Well, not really, but it does have some comforting Buddhist pictures. What it also does have is a full Rails course that starts with an introduction to Ruby objects and continues through arrays, methods, strings, hashes, lambdas, and blocks all the way to control structures, classes and object-oriented programming, and modules. When you finish the course, you will have all the background knowledge you need to dive head first into Ruby on Rails without stumbling all the time.
Rails for Zombies
Rails for Zombies is an interactive, online Ruby on Rails tutorial that doesn’t take itself too seriously, which only makes it more inviting. Rails for Zombies is broken down into several levels. Each level begins with a short video lesson that explains all the concepts touched upon in the level. Fun challenges help you solidify your knowledge, and zombie-themed badges serve as rewards for your efforts. The creators of Rails for Zombies recommend TryRuby.org to those who don’t have any experience with the Ruby language, but you can also use the above-recommended Ruby tutorial, RubyMonk.
Best Ruby on Rails Books
Some people prefer to learn from an authoritative book written by a reputable expert with years of industry experience under their belt, instead of various community-created tutorials. If you count yourself among those people, our selection of best Ruby on Rails books is just what you need to embark on a learning journey that ends with you mastering one of the most popular web application frameworks in existence.
The Ruby on Rails Tutorial by Michel Hartl
What Michel Hartl created is more than yet another Ruby on Rails book. It’s a complete Rails course with hundreds of pages of astonishingly well-written learning material, hours and hours of screencasts and video lessons, engaging exercises coupled with in-depth solutions, and a devout community of graduates of the course. Hartl offers this wealth of Ruby on Rails learning material from $29 per month, making it accessible to virtually everyone. This work of monumental proportions is something you don’t want to miss if you’re just starting out learning Rails from the ground up.
The Well-Grounded Rubyist by David A. Black
Aimed at newcomers as well as developers with some Ruby on Rails experience under their belts, The Well-Grounded Rubyist by David Black is widely praised for its colorful writing style that transforms what would otherwise be a wonderfully comprehensive Ruby on Rails course into a real page-turner. The book starts with basic Ruby foundations that every Rails programmer should be familiar with, continues through built-in classes and modules, and finishes with Ruby dynamics.
The Ruby Programming Language by David Flanagan and Yukihiro Matsumoto
All Rails developers can benefit from some knowledge of Ruby. Some get by with just the basics, while others want to learn as much as humanly possible. If you count yourself among the second group, The Ruby Programming Language from David Flanagan and Yukihiro Matsumoto is what you need to satisfy your thirst for knowledge. This thick book documents the Ruby language as definitively as the official language specification but without the same formality.
Rails: Novice to Ninja by Glenn Goodrich
Let’s face it: who wouldn’t want to be a Rails ninja? Just imagine how a title like that would look on your resume, and how many free drinks it would get you at the club. Well, the second part might be a bit far-fetched. The truth is, though, that with Glenn Goodrich’s book, you can become an actual Ruby on Rails ninja! The book takes an easy-to-follow approach that keeps the material progressing at a breezy pace. Goodrich requires readers to understand HTML and some CSS, but that shouldn’t be an obstacle for most people who want to learn Rails.
Practical Object-Oriented Design in Ruby by Sandi Metz
This well-written book by Sandi Metz addresses one of Ruby’s biggest downsides: long-term maintainability. In Practical Object-Oriented Design in Ruby, Metz explores how well executed object-oriented design can lead to better applications and lower development costs. Admittedly, intermediate and advanced Ruby on Rails developers can learn the most from a book of this caliber, but even relative beginners can benefit from reading certain chapters.
Essential Ruby on Rails Tools
RVM
Ruby Version Manager (RVM) is a command-line tool maintained by a community of volunteers, allowing developers to install, manage, and work with multiple Ruby environments. It’s possible to install RVM on most UNIX-like systems and Windows. RVM Windows requires either Cygwin or the Windows Subsystem for Linux, which is available from the Windows Store. For many years, RVM was the only way to manage multiple versions of Ruby on a single development machine. But even though we now have many other similar tools, RVM has retained much of its relevance to this day.
RubyInstaller for Windows
RubyInstaller for Windows is a self-contained installer for the Windows operating system that includes the Ruby language, an execution environment, documentations, and other useful things. Installing RubyInstaller for Windows is easy: select which version you would like to install from the official download page, download the installer, and follow a series of simple steps to install the software on your computer. If you decide to go with the latest Ruby version, you may discover some stability issues, which is why the developers of RubyInstaller for Windows recommend downloading an older version.
Homebrew
All developers can benefit from excellent Ruby version managers. Homebrew is widely considered to be the best package manager for the macOS operating system because it makes very complicated tasks simple. It automatically resolves dependencies, aids with source code configuration, takes care of compilation, and manages updates.
Brakeman
In this day and age, software security is not to be taken lightly. Malicious hackers release new, devastating strains of malware into the wild every day, and large-scale, targeted attacks are making the headlines on a regular basis. Brakeman is an automatic vulnerability scanner for Ruby on Rails applications. It applies statistical analysis on application source code to discover security issues and programming errors. Brakeman is also available as a commercial software with a convenient graphical user interface.
Sublime Text
Sublime Text is a splendid, snappy text editor with a sleek user interface, support for plugins, a ton of useful features, and an excellent community behind it. With Sublime Text, you can search across multiple documents at once, get the most out of your desktop or laptop monitor with split editing support, write without distracting menu bars, and customize just about every aspect of the editor to your heart’s content. Ruby and Ruby on Rails are, of course, fully supported, and many developers have detailed their experience with using Sublime Text for Rails development.
Disk Drill
We’ve placed Disk Drill at the end of this section because its use extends far beyond Rails development. Disk Drill is a premium data recovery suite for Windows and macOS computers. When working on an important project, the last thing you want is to lose days or weeks or even months of hard work due to a catastrophic hard drive failure or an astronomical user error.
Disk Drill can recover over 200 file formats, including the source files of your Rails projects. Data recovery with Disk Drill is easy, yet the software features highly sophisticated data recovery algorithms capable of handling even the most challenging data recovery scenarios.
Other Useful Ruby on Rails Resources
The world of Ruby on Rails is constantly moving forward, generating new, interesting ideas, tools, discussions, and developments. Keeping up with everything that happens in this world is a daunting task. We guarantee that you’ll find it much easier to stay informed if you bookmark the following websites and consume their content with every meal.
The Official Ruby on Rails Blog
The official Ruby on Rails blog is the best place to visit to keep up with Rails updates and official news. All posts get to the point without wasting your time, and the layout of the blog is clean and functional.
Rails Documentation
Reading descriptions of Rails APIs isn’t everyone’s cup of tea, but that’s what it sometimes takes to develop a groundbreaking web application using Ruby on Rails. Out of all the places where you can find documented Rails APIs, the official API docs are still the best.
RubyGems
RubyGems is more than an excellent package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries. It’s also a leading gem hosting service, where you can find interesting gems using advanced search filters.
RailsCasts
Produced by Ryan Bates, RailsCasts is a monthly Ruby on Rails podcast that features useful tips and tricks, new gems, best practices, interviews with interesting guests, and more. What’s best, all podcasts are sorted into categories, making it easy to quickly find the content you’re looking for.
Ruby Weekly
If you lack time to follow every Ruby news website and blog and would, instead, prefer to see only the most noteworthy news and articles, Ruby Weekly is just what you need. This once–weekly round-up of Ruby news and articles is free, delivered right to your inbox, and trusted by some of the most recognized Ruby and Rails developers.
RubyFlow
RubyFlow is a Ruby and Rails community linklog, where people post the most interesting links related to their favorite language and web-development framework.
/r/rails
You better be sure that there’s a subreddit dedicated solely to Ruby on Rails. /r/rails is an excellent place for discussion, networking, and sharing of interesting news related to Rails.