The thing that drives me nuts about Rails is that the conventions I learned everywhere else break down. There's no goto-definition that works in any sane way, I'm left `ag`ing through the codebase for `def whatever`. The amount of stuff I have to keep in my head to understand what any given object is doing (due to magic) is nuts and exhausting at times.
The general impression I get from Rails and Ruby is a desire to be lexographically terse: fewer characters on screen per unit of business logic. On the one hand, you can fit a lot of code in view at once, which has it's benefits. On the other hand, you're sacrificing explicit data for that terseness, and you have to fall back to holding state in your head.
Without a doubt, Rails is powerful, and there's a lot I've loved about working in the ecosystem, but there's very significant tradeoffs to doing things the Rails way.
I would imagine goto-definition not working well to be more an issue with Ruby being a dynamically typed language and having metaprogramming features like define_method, not the framework. (FWIW I really dislike Ruby despite really liking Rails)
My many complaint is convention is soft. It has edge cases, divergent thinking, it has unplanned detours. This is especially true in a fast moving environment. I would much prefer that the magic wasn’t so opaque.
For me, 99% Rails is by far my fastest productivity tool. However, that 1% of the time it just sucks.
The previous project I was on involved a "monorepo" using Nx (which sucks, imo), and a crazily frustrating zeal for abstracting every detail so that any given file contains 4 lines and finding out what anything fucking does involves opening 19 files and testing how many things my aging ex-stoner brain can hold in short term memory before the plates stop spinning and I catch myself wishing I dug ditches for a living, because at least you know when the ditch is done and there's no failed-upward idiot trying to deduplicate every detail of the digging.
So, idk. It can definitely vary.
I think the key is that ruby is good for kickstarting a business and getting it to a state where the business runs with high execution speed and minimal effort.
Once the business is operational and stable then continuing from there is bad. Usually you will have to change the entire stack and of course from certain perspectives this can be seen as a lack of foresight.
But if you chose to use another technology to start it could be that the speed of execution just wasn't fast enough and your business never reaches that island of stability because the technology just wasn't fast enough.