El uso de scaffold en grails puede reducirnos en gran medida el tiempo de desarrollo de un sistema ya que obtendremos de manera automática el ABC (Altas, Bajas, Consultas) de toda la aplicación centrándonos en las verdaderas necesidades que debe cubrir.
Si has usado scaffold con la plantilla default habrás notado que no siempre va de acuerdo a la estructura del sistema que estamos desarrollando por lo que es necesario modificar la plantilla. Esto se logra instalando las plantillas a nuestro proyecto usando el comando grails install-template.
El comando nos creará las plantillas default en la carpeta src/templates/scaffolding de nuestra aplicación teniendo la opcion de editarlos y así obtener una nueva a nuestro gusto.
Una vez editadas las plantillas (create, edit, list y show) solo tenemos que generar las vistas con scaffold y veremos que tendran la estructura que nosostros decidimos.
Pues buscando algo en que entretenerme me dió curiosidad por saber como guardar una imagen en una base datos usando GRAILS je y encontré esto.
En el modelo crear un atributo de tipo byte [] quedando la clase asi.
class Imagen {
int id
Date lastUpdated
Date dateCreated
byte[] screenshot
static constraints = {
screenshot(maxSize:1073741824)
}
}
En mi caso como soy nuevo en esto de grails genero las vistas, y tendré listo el formulario para subir imágenes a la base de datos.
Ahora bien para mostrar la imagen se tiene que agregar una definición en el controller de imagen:
def showImage = {
def imagen = Imagen.get( params.id )
response.outputStream << imagen.screenshot
response.outputStream.flush()
}
Ahora para poder verla solo tenemos que acceder a url del sitio /nombre del sistema/imagen/showImage/(id de la imagen)
<img src="/(sistema)/imagen/showImage/${imagen.id}">


