Rails is a web application framework written in Ruby. In comparison to something like Node's Express, it is a much higher level instance of an application framework.

From the Ruby on Rails page[1]:

The Rails philosophy includes two major guiding principles:

  • Don't Repeat Yourself: DRY is a principle of software development which states that "Every piece of knowledge must have a single, unambiguous, authoritative representation within a system". By not writing the same information over and over again, our code is more maintainable, more extensible, and less buggy.
  • Convention Over Configuration: Rails has opinions about the best way to do many things in a web application, and defaults to this set of conventions, rather than require that you specify minutiae through endless configuration files.

What this means is that there is quite a bit of abstraction done right out of the gate to handle the things that are most commonly implemented in websites. If you are coming from a Javascript-oriented background, this amount of abstraction and meta-programming might feel very overwhelming, but the more time you spend learning about it, you'll see that it can be used very effectively for specific types of sites.

If you persist in bringing old habits from other languages to your Rails development, and trying to use patterns you learned elsewhere, you may have a less happy experience.[1]


  1. https://guides.rubyonrails.org/getting_started.html
  2. https://www.railstutorial.org/

Last modified: 202207151011