One thing I can't figure out is whether to place my service objects under `/app/models` or under `/lib`. There doesn't seem to be a clear consensus on this? I tend more towards the former, because autoload works better during development. Also, I consider them part of my domain model. What do you do?
There's nothing stopping you from creating extra folders under /app to contain various types of service objects. Personally I have:
/app/factories - for classes which create active record objects
/app/services - for classes which do something I generally don't care about the return value of. Often perfect for background jobs.
/app/decorators - most of these are Draper classes
/app/forms - form objects
I use /app/interactors or /use_cases (per some Uncle Bob talk about architecture). I don't consider them models in the 'Data Model' sense so I don't put them in /app/models
Anything that is application-specific, we put in /app
Anything that's generic and re-usable, we put in /lib. This code is normally a prime candidate for gems - only very simple code stays in /lib for very long.
You don't even need to add that to the load path as of rails 4 - we have app/validators, app/services, app/forms, app/inputs etc etc, all autoloaded with no config.