(Ruby) Sélectionner uniquement les messages postés par des utilisateurs autres que l'auteur original

Salut à tous !

J’ai commencé à faire du bénévolat pour une communauté récemment et je suis chargé de mettre à jour un plugin existant. Ce plugin modifie actuellement le tag d’un sujet lorsqu’il atteint un certain seuil de nombre de mots. Je dois le convertir pour ne compter que les mots des posts dans le sujet qui ne proviennent pas du créateur du sujet.

Actuellement, le comptage des mots est réalisé par ce extrait :

replies = topic.posts.where('post_number > 1')
reply_word_count = replies.sum(:word_count)

Je pense que la stratégie sera la suivante :

non_op_replies = topic.posts.where('post.user.username != topic.user.username')
reply_word_count = non_op_replies.sum(:word_count)

Mais cela ne semble pas fonctionner. J’ai joué avec la syntaxe pendant un moment et je n’arrive pas à obtenir un plugin fonctionnel. J’ai essayé de trouver de la documentation sur le développement dans Discourse avec Ruby, mais sans succès. Je serais ravi si quelqu’un pouvait m’aider ou m’orienter dans la bonne direction. Je suis aussi nouveau en Ruby, alors désolé d’avance si c’est juste une erreur bête.

Bienvenue à bord ! :partying_face:

Je suis aussi débutant en Ruby, et j’ai trouvé ce tutoriel vraiment utile pour commencer.

Voici une série en 7 parties sur le développement de plugins Discourse. Même si elle ne contient pas exactement ce que vous cherchez, c’est une excellente ressource pour comprendre la structure d’un plugin Discourse.

Personnellement, j’apprends mieux par l’exemple et en consignant chaque étape, donc Rails.logger, ainsi que le journal de Discourse (logster), accessible via localhost:3000/logs, sont très utiles pour cela.

Voici la documentation Ruby pour le cœur de Discourse, si vous vous sentez courageux et souhaitez explorer par vous-même.

Merci pour votre aide ! Je vais jeter un coup d’œil à tout cela immédiatement.