diff --git a/app/services/post_service.rb b/app/services/post_service.rb index 4b7c2d7d..da7673d0 100644 --- a/app/services/post_service.rb +++ b/app/services/post_service.rb @@ -169,7 +169,21 @@ PostService = Struct.new(:site, :usuarie, :post, :params, keyword_init: true) do site.indexed_posts.where(post_id: post_ids).map(&:post) end - # Modificar las asociaciones en cascada + # Modificar las asociaciones en cascada, manteniendo reciprocidad + # y guardando los archivos correspondientes. + # + # HABTM, Locales: si se rompe de un lado se elimina en el otro y lo + # mismo si se agrega. + # + # HasMany: la relación es de uno a muchos. Al quitar uno, se elimina + # la relación inversa. Al agregar uno, se elimina su relación + # anterior en el tercer Post y se actualiza con la nueva. + # + # BelongsTo: la inversa de HasMany. Al cambiarla, se quita de la + # relación anterior y se agrega en la nueva. + # + # @param :post [Post] + # @return [nil] def update_associations(post) association_attributes(post).each do |attribute| metadata = post[attribute] @@ -219,6 +233,8 @@ PostService = Struct.new(:site, :usuarie, :post, :params, keyword_init: true) do added_paths << associated_post.path.value end + + nil end # @todo por qué no podemos usar nil para deshabilitar un valor?