On some work projects I've gotten a lot of mileage out of breaking with the traditional Rails patterns in favor of stuff like `Operation` objects. Too bad I didn't know about Trailblazer!
I also agree about Rails making excessive use of Ruby magic. Just because it's possible, doesn't mean you should do it.
Regarding non-ActiveRecord models, I use Sequel[1] exclusively at work - in addition to being decidedly less magical, it has wonderful support for most Postgresql specific features.
I'll be consulting this in the future before embarking on new Ruby adventures.