Sé preguntas similares han sido respondidas antes - como por ejemplo:Rieles: controlador flaco vs. modelo de grasa, o debería hacer mi controlador anoréxico?
- dónde debería ir la lógica
- , donde hay que hacer ciertas tareas, etc.
Pero tengo una pregunta más específica - ¿Cómo Hasta ahora debería tomar este axioma: Mantenga su controlador delgado, ¡haga que su modelo gorda!
Aquí se muestra un ejemplo:
Por ejemplo digamos que tienen múltiples fuentes de datos de verificación. Un buen ejemplo sería un número VIN - Puedo verificarlo en contra, fuente de datos del fabricante, fuente de datos del DMV, también mis bases de datos locales - para ver lo que tengo registrado. Así que tengo un modelo llamado Vin y vins_controller. Dentro del modelo que tengo 5 métodos:
- check_against_local_db
- check_against_dmv
- check_against_car_maker_1
- check_against_car_maker_2, etc.
en mi controlador de acuerdo con el resto del mundo del espectáculo, la acción - Tengo una declaración de caso simple que mira los parámetros [: fuente], y en función de la fuente especificada - llamará al método de verificación específico.
Ahora aquí está la pregunta: ¿Debo dejar la lógica que gobierna qué fuente de datos llamar en el controlador o debo moverlo al modelo y luego en el controlador simplemente hacer algo como check_vin (source, vin)?
¿Debo hacer que mi controlador sea anoréxico?
EDITAR
estoy cambiando a esta respuesta oficial de @ Jay-Godse (gracias - en el momento que era una buena respuesta). Las cosas han cambiado mucho desde 2010 y esta pregunta todavía tiene algunas opiniones, por lo que espero que esto apunte a algunas personas en la dirección correcta y les ayude a organizar su código correctamente.
Trailblazer gem aborda los problemas planteados en la pregunta realmente bien.
Estoy cambiando esto a una respuesta oficial. Las cosas han cambiado mucho desde 2010 y esta pregunta todavía tiene puntos de vista, así que espero que esto apunte a algunas personas en la dirección correcta. Trailblazer aborda los problemas planteados en la pregunta realmente bien. – konung