eliminar del índice al eliminar el artículo

This commit is contained in:
f 2021-05-07 18:06:49 -03:00
parent 13b6b7a452
commit d2ae406023
2 changed files with 17 additions and 3 deletions

View file

@ -17,6 +17,9 @@ class Post
attr_reader :attributes, :errors, :layout, :site, :document
# TODO: Modificar el historial de Git con callbacks en lugar de
# services. De esta forma podríamos agregar soporte para distintos
# backends.
include ActiveRecord::Callbacks
include Post::Indexable
@ -258,11 +261,17 @@ class Post
end
# Eliminar el artículo del repositorio y de la lista de artículos del
# sitio
# sitio.
#
# TODO: Si el callback falla deberíamos recuperar el archivo.
#
# @return [Post]
def destroy
FileUtils.rm_f path.absolute
run_callbacks :destroy do
FileUtils.rm_f path.absolute
site.delete_post self
site.delete_post self
end
end
alias destroy! destroy

View file

@ -8,6 +8,7 @@ class Post
included do
# Indexa o reindexa el Post
after_save :index!
after_destroy :remove_from_index!
# Devuelve una versión indexable del Post
#
@ -35,6 +36,10 @@ class Post
to_index.save
end
def remove_from_index!
to_index.destroy.destroyed?
end
# Los metadatos que se almacenan como objetos JSON. Empezamos con
# las categorías porque se usan para filtrar en el listado de
# artículos.