I see conventions like that as an acknowledgement that Rails often gives up purity in favour of simplicity. It makes this decision quite often, primarily because it works for Basecamp, but also it keeps the mental model simple, especially for juniors learning the ropes.
I've not seen many places that actually use it. Instead there are several other layers of patterns that try to keep things decoupled but introduce a different kind of complexity. And the implementation is different every time (Ruby devs love their custom service/command DSLs).
I've not seen many places that actually use it. Instead there are several other layers of patterns that try to keep things decoupled but introduce a different kind of complexity. And the implementation is different every time (Ruby devs love their custom service/command DSLs).