What, of course, does not get into the picture is the number of actions¹ - at least in the sense that "oh, I have more than 50 actions in this controller, let him start another one."
The ² directive should be: controllers are a logical group for actions that work with the same type of object (a model of the same type may be a better definition). If it so happens that you have such a model rich in functionality that 30 separate actions can be performed on it, put them in the same controller.
On the other hand, coins: if you have simple models and you find that you write controllers in just a few steps, this should be a reason to feel good about application support, not a cause for concern.
Notes:
¹ Of course, a controller with so many actions is a red flag for possible code abuse, so the number should be taken into account - just not like some kind of hard rule.
² And this is really a guide - the goal here is to build a supported system, and not follow some religious scriptures.
source share