Rails 5.2: Subir archivos adjuntos usando Active Storage
Comencemos a implementar el Active storage desde cero en la aplicación rails.
1)Crear una nueva aplicación rails utilizando el siguiente comando
rails new tc-active-storage
Si se quiere utilizar una base de datos específica para la aplicación
rails new tc-active-storage -d=<database name>
2) Ir a la carpeta tc-active-storage
3) Ejecutar el comando bundle
o bundle install
4) Ejecute el siguiente comando para generar la migración e instalar el almacenamiento activo en su App
rails active_storage:install
5) Ahora en la carpeta de la aplicación, se ve el archivo de migración de almacenamiento activo
Tras la ejecución, crea dos tablas que Active Storage necesita para cumplir sus promesas: active_storage_attachments y active_storage_blobs
6) Para almacenar el archivo adjunto necesitamos crear un Modelo y añadir la relación de Almacenamiento Activo
has_one_attached:image
(Si es una sola imagen)
O
has_many_attached:image
(Si son varias imágenes)
7) Dentro del Controlador permite image
params
Para una sola imagen:
Para múltiples imágenes:
Notas importantes:
Modelo: Llamamos al método has_one_attached o has_many_attached en la definición del modelo con un símbolo que se convertirá en un atributo virtual en cada instancia de nuestro modelo.
Controlador: Enumeramos en blanco el parámetro image
Views: Añadimos un campo_archivo a nuestro formulario y mostramos una imagen subida en la etiqueta_imagen.
Aquí puedes dar cualquier variante de tamaño
image.variant(resize:"500x500", momochrome:true)
Cómo configurar con la nube para subir archivos adjuntos
config/storage.yml
Para local
config/environments/development.rb