@KurtMueller As with most things… it depends
How far up the stack are you happy pushing things? Personally, I rarely go past the controller level. If you want to keep pushing, try having your wiring in a initializer, for instance. Or keep going up, into Middleware.
Have a look at the Payload gem by thoughtbot and the way it is used for Upcase exercises app, specifically the config/dependencies file.
If you don’t mind me offering some advice, I’d start by inverting control up to the controller layer.
Let the controllers be the place that have knowledge of class names and how to instantiate each one with the correct dependencies. Then you can have a better perspective for the need to keep pushing up.
Maybe some of the wiring is needed in more than one place. Move it up the stack so it is available. Eventually, you’ll have the feel for applying/organising DI in a Rails app.
I’ve seen projects that have a single wiring file and are long lasting apps. That file tends to be huge and rather difficult to manage. Of course, the same can start to happen to your controllers.
It is always, always, a matter of thinking through the trade offs between your decisions.
Hope this helps