En términos generales, una acción (o función) en una clase debe ser algo que ver con el objeto en el que se encuentra.
Echa un vistazo a un GIST rápido que acabo de crear para esta respuesta. El carro de compras básico me deja saber si es útil.
Vamos a intentar una analogía simplificada.
- Controlador = Recepcionista de oficina
- Acción = Programador
- Modelo = Asistente personal
- Ver = Representante de ventas
El controlador responde al teléfono, y dirige la llamada a la acción apropiada o responde bien si el cliente en el teléfono está hablando en broma.
- ¿Cuáles son las formas de recuperar la confianza en uno mismo cuando te caes?
- ¿Hay alguna forma de mejorar tus habilidades de tenis cuando no estás en el campo? (Como practicar incluso cuando no estas jugando)
- Cómo superar mi miedo y ser valiente.
- ¿Qué errores cometen a menudo los nuevos escritores en sus escritos?
- ¿Benjamin Franklin desarrolló una serie de sistemas? Si es así, ¿dónde puedo encontrarlos?
El modelo tiene el control del archivador, es su trabajo obtener un archivo del gabinete, escribir algo en él, tirarlo en la papelera o colocarlo nuevamente en el gabinete. (CRUD Crear, Leer, Actualizar o Eliminar)
La acción tiene un trabajo específico y maneja precisamente ese trabajo, ya que trabajan estrechamente con el modelo. Preparando todos los datos. ¿Existe este producto? Genial, necesitamos un nuevo carrito si aún no tenemos uno en la sesión y lo agregamos a los productos del carrito, guárdelo en la sesión y luego podemos ver qué hace el usuario a continuación.
La vista de un cliente que llama por teléfono es respondida. Agarran el archivo que la acción ha preparado y hacen una hermosa presentación al cliente utilizando la información proporcionada por la acción. (¡Ojalá el cliente compre más productos o finalice una venta!)
El controlador y la acción nunca deberían tener que ir directamente al gabinete (en riesgo de molestar al asistente).
El modelo y la acción nunca deben descolgar el teléfono para hablar directamente con un cliente (supongamos que no está en la descripción del trabajo de un asistente).
La vista nunca debería tener que hacer nada, excepto presentar los datos que la acción ha preparado.