Existe una gema muy útil que permite cargar de forma sencilla archivos CSV desde el panel de control de active admin, por regla general es muy fácil de utilizar, sólo tienes que crear un archivo CSV que en la cabecera tengan los campos que quieres guardar (tienen que coincidir con el modelo) y listo.

La gema se llama active_admin_import, para instalarla tenemos que agregar a nuestro gemfile

y luego:

Entonces suponiendo que tenemos el modelo pedidos con id y nombre, tendríamos que crear el recurso pedido con activeadmin y agregar dentro de admin/pedido.rb y dentro del archivo tendríamos que poner:

active_admin_import

y luego crear un archivo .csv con la cabecera

el formato de CSV por defecto es sin espacios separadores entre la coma, o sea pone todo junto, eso no quiere decir que no puedas ocupar espacio, sólo que no debes agregarlo entre medio del símbolo coma.

Importando un csv de usuarios con devise.

En el caso de que quieras insertar usuarios que estén bajo devise es un poco más complejo, puesto que el password no es parte del modelo, lo que si tiene es un encrypted_password, entonces para poder guardar correctamente a los usuarios lo que vamos a hacer es modificar el CSV que está leyendo active_admin_import para cambiar los password por password encriptados, además tenemos que apagar las validaciones y sacamos el header para no confundir a active_admin con el cambio del nombre del campo de password a encrypted_password.

Aquí dejo un ejemplo de un usuario con devise que tiene email y password.

Share Button

Director de DesafíoLatam. Ingeniero Civil Informático de la Universidad Federico Santa María. Emprendedor lean, dedicado al desarrollo de una mejor web con ruby on rails. Fanático de los números y las métricas, la música y la fotografía.