RR 353: Removing Business Logic from Rails Controllers with Aaron Sumner


  • Charles Max Wood
  • David Richards

Special Guests: Aaron Sumner

In this episode of Ruby Rogues, the panel discusses removing business logic from Rails controllers with Aaron Sumner. Aaron is a long time Ruby developer, using mostly Rails, writes a blog called Everyday Rails, and most people know him from his book, Everyday Rails Testing with RSpec: A practical approach to test-driven development. They discuss service objects, the pros and cons of using them, and they emphasize not trying to change something all at once, but gradually.

In particular, we dive pretty deep on:

  • Aaron intro
  • How to test code without controller tests?
  • The cons to controller tests
  • Soft deprecation
  • If you’re not writing controller tests, what are you writing?
  • Get the code out of the controllers and test it in more isolation
  • Service objects
  • Problem with a controller having a lot of business logic in it
  • Rails
  • Cons of service objects
  • Using a service object inside of a controller
  • Pros of service objects
  • Getting smaller can happen step-wise
  • Re-architecting should happen gradually not all at once
  • When you write a service object, there is a flow to it
  • How writing his book impacted his views
  • Start small
  • And much, much more!