ActsAsTaggableOn no tiene una buena manera de hacer esto construida en (que puedo encontrar). He aquí cómo lo hice:
Primero, encuentre las etiquetas que desea eliminar. Esto debería ser una Array
o ActsAsTaggableOn::Tag::ActiveRecord_AssociationRelation
Si ha implementado acts_as_tagger
:
tags = @user.owned_tags.where(name: my_array_of_tag_names)
Si usted quiere encontrar etiquetas por todos los propietarios (o no está utilizando acts_as_tagger
):
tags = ActsAsTaggableOn::Tag.where(name: my_array_of_tag_names)
Luego recorre las etiquetas, encuentra todas las etiquetas y delete
, y finalmente delete
la etiqueta. (Tenga en cuenta que destroy
no funcionará en este caso)
tags.each do |tag|
ActsAsTaggableOn::Tagging.where(tag_id: tag.id).delete_all
tag.delete
end
¿Qué es este * * act_as_tagg plugin? ¿Podrías proporcionar más información al respecto? '@ tag.destroy' debería eliminar la etiqueta, por lo que algo más debe interferir. – Veger
Heh tropezó accidentalmente con él: actúa como taggable-on Será mejor que cambie el título de la pregunta – Veger
sí amigo, es el mismo plugin "actos-como-etiquetables", obtuve esto tomando el nombre de params y muestra un error como "nil no se puede forzar en Fixnum" –