Having picked up Rails 9 years ago and having been using it literally daily ever since, it's joyful to read from someone that is just starting.

I also started with https://www.railstutorial.org/book, highly recommend it.

I also loved Metaprogramming Ruby (Paolo Perrotta) - it's more advanced and starts to open your mind to how Rails magic DSL's were built.

I just bought today "Rebuilding Rails" (https://rebuilding-rails.com/), heard great things about it.

Ruby and Rails are amazing, and I wouldn't trade it for any other language/framework out there.

I really should try Rails again. I LOVE ruby, but have been anti-rails for a while and I am not sure I am right for that.

I got into Ruby programming through Rails... but in 2005. Rails was brand new (I think I was on version like 0.12 or something?), and I slowly moved away from it to things like Sinatra and Sequel. Rails had some huge performance issues, and active record was pretty unusable at any sort of scale unless you did a lot of custom SQL.

I know it has come a long way in 15 years, I should try again

I'm sure it depends on the complexity of the app you're building. For simple crud-ish apps (ecommerce, online auctions, etc) I've found that I don't need to write even a single line of custom SQL, and performance is generally good (lots of N+1s, but these are easy to avoid with things like bullet). I also love being able to let Rails render most HTML, and the few things that need to be very dynamic you can just throw a single react component in without worrying about the usual SPA problems.

If you're just prototyping stuff, I don't think you can beat Rails for productivity. But if you're targeting something more enterprise or large scale, I don't think it's a good choice. Go/Rust are so much faster (not that that matters a lot), and even things like C#/Java pretty nice to use nowadays.

"lots of N+1s, but these are easy to avoid with things like bullet"

What is bullet?

It is a plugin/gem that helps you track N+1 queries.

https://github.com/flyerhzm/bullet