Vous pouvez le faire avec un simple plugin.
Ce que vous devez faire
Le plugin devra faire ce qui suit :
-
Ajouter un champ personnalisé utilisateur appelé
known_tags, une liste de chaînes de caractères. -
Ajouter une interface dans le profil utilisateur où l’utilisateur peut modifier
known_tags. Je ne pense pas qu’il soit nécessaire d’ajouter un onglet de profil entièrement nouveau pour cela, mais vous pourriez le faire si vous le souhaitez. Si vous ne voulez pas que les utilisateurs le modifient eux-mêmes, faites en sorte qu’il ne soit modifiable que par les administrateurs et allez simplement dans les profils des utilisateurs et mettez-le à jour en fonction de votre fichier CSV. -
Ajouter un hook d’événement qui utilise les événements
before_create_postoupost_createddansPostCreatorpour ajouter le contenu que vous souhaitez au message en fonction des tags du sujet.
Comment faire
Les parties 1 et 2 sont très similaires aux plugins d’exemple pour d’autres modèles dans le sujet lié ci-dessous. Essayez de le comprendre par analogie. Si vous êtes vraiment bloqué, demandez-moi un indice.
La partie 3 ira également dans votre fichier plugin.rb. Elle ressemblera à ceci :
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 + "quelque chose quelque chose #{usernames}"
PostRevisor.new(post).revise!(
user,
{
raw: new_raw,
edit_reason: "une raison"
},
skip_validations: true,
bypass_bump: true
)
end
end
Essayez par vous-même. Si vous êtes vraiment bloqué, je vous aiderai. Je suis toujours plus enclin à aider s’il y a des preuves solides que vous essayez de le comprendre par vous-même ![]()