Desafio Latam
 
  • Tutoriales
    • Rails
    • Javascript
    • Android
  • Motivación
  • Graduados
  • Ver Cursos

activeadmin

Importando CSV desde el panel de control de active admin

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

Ruby
1
gem "active_admin_import" , '2.1.2'

y luego:

Ruby
1
bundle

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

Ruby
1
2
3
4
id,producto
1,televisor
2,Ps4
3,Xbox1

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.

Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
  active_admin_import validate: false,
    before_batch_import: proc { |import|
      import.csv_lines.count.times do |i|
        import.csv_lines[i][2] = User.new(password: import.csv_lines[i][2]).encrypted_password
      end
    },
    :template_object => ActiveAdminImport::Model.new(
        :hint => "file will be imported with such header format: 'email','name','password'",
        :csv_headers => ["name", "email", "encrypted_password", "cohort_id", "role"],
        csv_options: { col_sep: ","}
    ),
    :timestamps=> true,
    :batch_size => 1000
 
Share Button
Gonzalo Sánchez

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.

http://www.DesafioLatam.com
  • mayo 6, 2015
  • 0
  • 3140
  • ActiveAdmin, Devise, Tutoriales
  • Ver más

Recursos anidados en ActiveAdmin

ActiveAdmin es una potente gema para construcción de paneles de administración en ruby on rails, en este tutorial veremos como utilizar recursos anidados dentro de ActiveAdmin.

Paso 0: Setup

Para partir vamos a construir una aplicación web sencilla que tenga artistas, álbumes y canciones. Obviamente un artista puede tener varios álbumes y cada álbum puede tener varias canciones.

por lo que nuestros recursos quedarían de la siguiente forma: “Artist >> Album >> Songs”

Si queremos desde el panel de control subir una canción y que quede automáticamente asignada al artista o querer hacer acciones CRUD sobre las canciones, pero que deben estar bajo el contexto de un Album y Artista determinados. Este es justamente el ejemplo que vamos a revisar.

Share Button
Sebastián Jiménez

Ingeniero especializado en Diseño y Automatización de Procesos.
Empeñado en ayudar al sentido común con Tecnologías de la Información.
Alumno de la primera generación de Desafío Latam.

http://www.DesafioLatam.com
  • abril 20, 2015
  • 1
  • 6361
  • ActiveAdmin, Tutoriales
  • Ver más

Como hacer un scaffold después de instalar activeadmin

En este artículo te explicaré como evitar un problema que seguramente tendrás cuando quieres crear un scaffold después haber instalado la Gema «Active Admin».

Share Button
Daniela Gattoni

Software Engineering Student at USM, Santiago, Chile. Web Designer & programmer. #hack4good Santiago 1st place 2014 with #BringYourCup app.

http://www.DesafioLatam.com
  • abril 2, 2015
  • 5
  • 3769
  • ActiveAdmin, Tutoriales
  • Ver más

SUSCRÍBETE A NUESTRO NEWSLETTER

Inicio 1 de Marzo

Inicio 9 de Marzo

Inicio 9 de Marzo

Inicio 15 de Marzo

Etiquetas

activeadmin alumnos android API aplicación móvil APP aprender Automatización ciberseguridad consejos desarrollo devise digital diseño Diseño de patrones diseño ux/ui educación emprendimiento eventos experiencia front end fullstack Google hackathon Herramientas útiles Html Infraestructura Javascript lenguajes de programación Motivación mujeres oportunidades Optimización programación python Rails Rake Ruby Ruby on Rails talleres tecnología testimonio Tips Tutoriales webinar