I use service objects in all of my Rails projects.
👷♂️ This is how I engineer them:
1. Define the ApplicationService class with the call class method that does nothing but accepts any params and initializes a service, then calls the call instance method immediately
2. Define the initialize instance method that does nothing but accepts any params
3. Define a service that inherits from ApplicationService and defines the call method. If a service requires params, I define the initialize method, call super, then use the params. If you don't need params, then you don't need to define initialize at all
4. Implement the call method.
That's all!