Why was it ever popular? It promoted a productive code organizational pattern, basic hygiene like migrations that were absent in a lot of web dev at the time, had a very productive non-totally-dogshit ORM, and some good deployment tools for the pre-container (and, hell, pre-popularization-of-IAC) era developed alongside it.
It’s mostly the ecosystem making it popular these days. Same reason Python’s a juggernaut in several spaces—the ecosystem, not the language or tools (or, in Rails’ case, framework). You can slap a few gems together and have a site with all the basics (user accounts, admin, OAuth, file uploads, user roles, et c) in minutes. The gems are widely-used enough that they support most things you might need for whatever-they-do, and you probably won’t run into some feature that you really need but has been broken for two years and nobody realized it because nobody’s using that feature.
(For the record, I’ve sworn off rails after seeing so many codebases that were total dumpster fires that I decided it attracts too many budget-minded-to-a-fault companies and owners for me to want to work with it again, plus I fucking hate ungreppable magical defined-nowhere metaprogramming symbols and magical imports that leave one unable to figure out WTF is happening without running the code, but I can see why it’s popular)
It’s mostly the ecosystem making it popular these days. Same reason Python’s a juggernaut in several spaces—the ecosystem, not the language or tools (or, in Rails’ case, framework). You can slap a few gems together and have a site with all the basics (user accounts, admin, OAuth, file uploads, user roles, et c) in minutes. The gems are widely-used enough that they support most things you might need for whatever-they-do, and you probably won’t run into some feature that you really need but has been broken for two years and nobody realized it because nobody’s using that feature.
(For the record, I’ve sworn off rails after seeing so many codebases that were total dumpster fires that I decided it attracts too many budget-minded-to-a-fault companies and owners for me to want to work with it again, plus I fucking hate ungreppable magical defined-nowhere metaprogramming symbols and magical imports that leave one unable to figure out WTF is happening without running the code, but I can see why it’s popular)