Не знаю, существует ли идеальный способ, но в зависимости от проекта, с которым я имею дело, я сгруппировал его в структуре папок. Первоначально, опять же, специфично для моего проекта, нам приходилось иметь дело только с парой контролеров, называемых тренером и менеджером. Но со временем их размер начал увеличиваться, и нам пришлось создать еще несколько контроллеров, которые можно было бы сгруппировать по широкой категории. Это привело к постоянному росту.
Прошло больше времени, и мы начали группировать его по папкам, например, в папке с именем coach все связанные функции для тренера пошли бы, а имена контроллеров стали выглядеть как class Coach::SchedulesController < ApplicationController
.
Этот способ группировки также поможет при написании функциональных тестов. Вы не хотите, чтобы ваш функциональный тест также имел безумное количество строк.
Но суть, как всегда предлагает Rails, заключается в том, чтобы иметь тощий контроллер и толстую модель. Временами может быть не так просто следить за этим, и да, вот несколько способов преодолеть трудности.