Estoy buscando maneras de cómo limpiar mi código de controlador Grails. En varios controladores que tienen más o menos la misma lógica ..¿Cómo hacer que los controladores Grails sean más DRY?
- obtener el objeto
- cheque si existe
- etc ..
¿Existe una manera sugerida en la fabricación de las acciones del controlador reutilizar el código común?
--- --- solución
Todas las respuestas a la pregunta han contribuido a la solución que hemos implementado.
Creamos una clase que se utiliza en nuestros controladores utilizando el enfoque Mixin. Uno de los métodos que expone la mixina es el método withObject. Este método toma el nombre de dominio del controlador y lo utiliza como una base para el método. ¡Este comportamiento puede ser anulado, por supuesto!
def withObject(object=this.getClass().getName()-"Controller", id="id", Closure c) {
assert object
def obj = grailsApplication.classLoader.loadClass(object).get(params[id])
if(obj) {
c.call obj
} else {
flash.message = "The object was not found"
redirect action: "list"
}
}
¡Todas las respuestas han contribuido a la solución! ¡Muchas gracias!
Por favor edite la pregunta y agregue un ejemplo de su código. Por el momento, la pregunta es muy vaga. – ordnungswidrig