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»
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!
Daniela Gattoni
Artículos relacionados
5 Comentario
Deja una respuesta
Recibe los artículos más leidos y beneficios especiales de nuestra academia
Empieza a trabajar en los roles digitales mejor pagados
Fórmate de manera práctica, e intensiva, con sesiones en vivo de forma flexible y efectiva. Te acompañamos desde que partes hasta que encuentras trabajo.
[…] http://blog.desafiolatam.com/como-hacer-un-scaffold-despues-de-instalar-activeadmin/ […]
Gracias!
[…] http://blog.desafiolatam.com/como-hacer-un-scaffold-despues-de-instalar-activeadmin/ 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. […]
Gracias Dani!!!
Buenisimo!, me solucionó un gran problema 🙂