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.