@MBarberry welcome to the community! As you get to know Rails, I think that it’s important that you understand why Rails is designed the way that it is. You’ll hear references to “The Rails Way”, which is a phrase that refers to features, patterns and choices that Rails makes about how software is developed. One of the core tenets of the Rails framework is convention over configuration – Rails provides a set of sensible defaults for how things work, so that you don’t have to configure them. If you have experience with other frameworks, or have written code from scratch, then you’ll have an idea of what problems are being solved for you, and what decisions are being made on your behalf. If you are new to programming, then you may not understand why those decisions are being made. However, you should still understand what those decisions are and the philosophy that guides them. One good place to start is by reading The Rails Doctrine. That document explains the philosophy of Rails, which is key to understanding the design decisions for the framework.
Once you’ve understood the design philosophy, you’ll be in a better position to understand “the Rails way” – the defaults and guide rails of the framework. The best way to understand those defaults is to use them. Your first project(s) in Rails should use the features that are installed out of the box when you run rails new
. These include (among other things) server side rendering with ERB, minitest for testing, and MySQL for the DB. Many rails programmers prefer HAML for templating, rspec for testing, and PostgreSQL for the DB. I would suggest that you don’t concern yourself with those until you understand and can use the defaults.
At some point after you have experience using the defaults, you may find that the out of the box functionality can’t do what you need to. Or perhaps you would prefer another option to the default. At that point you can explore alternatives, armed with the knowledge that the defaults don’t do what you want them to.
My recommendations come from my experience learning Rails. When I got started I would read blog posts about using alternative templating systems (like HAML); everyone was recommending rspec over minitest; Postgres was lauded as better than MySQL; and Angular was being trumpeted as the best thing since slice bread. I listened to all those voices and got lost trying to get all those things setup from the beginning. This seriously slowed down my ability to learn and understand Rails. It wasn’t until I stopped listening to the crowd and started using Rails out of the box did I truly begin to get productive. I was able to complete my first application in a few months. And then I was also able to decide for myself if the out of the box stuff wasn’t good enough.
Another issue that I had was that I got stuck in learning mode, doing dozens of tutorials and courses that didn’t really teach me how to build something. I eventually came across a course on Udemy that focused on building a single application using a pretty basic stack. If you haven’t completed a course yet, I highly recommend that one (Udemy has frequent sales, so you can easily get that course for less than $30). If you have completed a course, then your next step should be to build a Rails app using the defaults.
tl;dr: use Rails out of the box, with all the defaults to build your first application or two. Once you have experience, explore alternatives to the default.