Activeadmin con Hstore

En el tutorial anterior vimos como utilizar los tipos de datos hstore de postgres para guardar directamente un hash, en este tutorial vamos a ver como configurar activeadmin para poder editar de forma sencilla los datos guardados en este campo.
Paso 1: Agregar la gema activeadmin hstore editor
El truco consiste en utilizar la gema activeadmin_hstore_editor
que técnicamente hace todo el trabajo, una vez agregada la gema al gemfile tenemos que correr bundle
bundle
Paso 2: Configurar el initializer para incluir los assets del editor
Ahora debemos agregar dentro del archivo config/initializers/active_admin.rb
config.register_stylesheet 'active_admin/hstore_editor.css'
config.register_javascript 'active_admin/hstore_editor.js'
Paso 3: Modificar el admin del recurso para agregar el editor al formulario
En mi caso yo tengo un recurso creado para los usuarios, o sea previamente corrí la línea
rails generate active_admin:resource user
y dentro del archivo app/admin/user.rb agregué
permit_params :favs
hstore_editor
# specify the type does not necessarily
form do |f|
f.inputs do
f.input :favs, as: :hstore
end
f.actions
end
y con eso si visitamos el panel de administrador en la sección de usuarios e intentamos crear un usuario o modificarlo observaremos que tenemos un editor para agregar campos de forma fácil a nuestra columna que es del tipo hstore.
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.