• Как написать тест rspec для тестированя контроллера на race conditions?

    @kaasmith
    Контроллеры по сути "прокси объекты", которые транслируют запросы, а не место для хранения бизнес логики. Не знаю, ваш функционал, но то что вы описали - это логика сервисного объекта.

    "А если создавать отдельный сервисный объект для каждого экшена, то зачем вообще контроллеры?" - если ваш код не меняется и вы ничего не добавляете в проект - то нет смысла сегментировать код, уменьшать связность объектов, делать код "открытым" к изменениям. Если же это не про вас и проект живет и развивается, то приходится следовать лучшим практикам.

    Обычно сервисные объекты отвечают за определенный функционал, нет нужды писать отдельный объект для каждого экшна.

    Почитайте книги Сэнди Мец.