Desafío Latam
Uncategorized

Como hacer un scaffold después de instalar activeadmin

Screen Shot 2015 04 02 at 7.18.48 PM

Screen Shot 2015 04 02 at 7.18.48 PM

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».

Si creaste un scaffold antes de instalar la gema activeadmin problablemente te diste cuenta que Rails automáticamente hizo el trabajo de crear las vistas, el modelo y el código de los métodos REST en tu controller tal como te muestra en esta imagen.

Pero después de instalar Activeadmin, intentaste crear otro scaffold y al momento de revisar el controller, obtuviste algo como esto, cierto? Un controller vacío!..bueno, esto es bastante desagradable! pero ocurre cuando instalas activeadmin. Esta gema trae ciertas dependencias hacia otra gema llamada «inherited_resources» en su version 1.6.0 (la cual es la verdadera culpable de esta situación) Esta gema lo que hace es extraer la funcionalidad más habitual de los controladores REST para evitar la duplicación del código, pero que lamentablemente según el mismo autor desde Rails 3 ya está deprecada:

«Since Rails 3 came out, I have no longer used Inherited Resources and it is no longer actively maintained»

– Gem Author

Solución:

Desinstalar la gema inherited_resources nos traerá problemas con ActiveAdmin, por lo que agregaremos un fix para seguir creando nuestros scaffolds normalmente y obtener el código auto-generado de nuestros métodos REST como necesitamos:

Para esto abre el archivo config/application.rb y después de:

config.active_record.raise_in_transactional_callbacks = true

Agregas el siguiente código:

 config.generators do |g|
      g.scaffold_controller "scaffold_controller"
 end

debe quedar como te muestro en este screenshot (click)

Reiniciar el servidor y desde la terminal:

rails s

Luego puedes volver a crear tus scaffolds y obtendrás el código auto-generado como antes!

Espero que este tutorial sea de utilidad y te haya evitado un mini-dolor de cabeza =)

KeepCoding!

 

 

Artículos relacionados

¿Debe un diseñador saber programar?

Romina Díaz
10 años ago

Por más mujeres en emprendimiento y tecnología

Diego Arias
8 años ago

¡Las 20 compañías del mundo que más contratan Talento TI JUNIOR!

Estefanía Borda
1 año ago
Salir de la versión móvil