Puedes hacer esto con un plugin sencillo.
Lo que necesitas hacer
El plugin necesitará hacer lo siguiente:
-
Añadir un campo personalizado de usuario llamado
known_tags, una lista de cadenas. -
Añadir una interfaz en el perfil de usuario donde el usuario pueda editar
known_tags. No creo que sea necesario añadir una pestaña de perfil completamente nueva para esto, pero podrías hacerlo si quisieras. Si no quieres que los usuarios lo editen ellos mismos, haz que solo sea editable por los administradores y simplemente ve a los perfiles de usuario y actualízalo basándote en tu archivo CSV. -
Añadir un hook de eventos que utilice los eventos
before_create_postopost_createden elPostCreatorpara añadir el contenido que deseas a la publicación basándote en las etiquetas del tema.
Cómo hacerlo
Las partes 1 y 2 son muy similares a los plugins de ejemplo para otros modelos en el tema enlazado a continuación. Intenta deducirlo por analogía. Si te atascas de verdad, pídemelo y te daré una pista.
La parte 3 también irá en tu archivo plugin.rb. Se parecerá a esto:
on(:post_created) |post, opts, user|
if post.is_first_post? && post.topic.tags.present?
user_ids = UserCustomField.where(name: 'known_tags', value: post.topic.tags).pluck(:user_id)
usernames = User.where(id: user_ids).pluck(:username)
new_raw = post.raw + "algo algo #{usernames}"
PostRevisor.new(post).revise!(
user,
{
raw: new_raw,
edit_reason: "alguna razón"
},
skip_validations: true,
bypass_bump: true
)
end
end
Inténtalo tú mismo. Si te atascas de verdad, te ayudaré. Siempre estoy más inclinado a ayudar si hay pruebas sólidas de que estás intentando resolverlo tú mismo ![]()