(Ruby) Selezionare solo i post scritti da utenti diversi dall'autore originale

Ciao a tutti!

Ho iniziato a fare volontariato per una comunità di recente e mi è stato affidato il compito di aggiornare un plugin esistente. Questo plugin modifica attualmente il tag di un argomento quando raggiunge una certa soglia di conteggio delle parole. Dovrei convertirlo in modo che conti solo le parole dei post nell’argomento che non provengono dal creatore dell’argomento.

Attualmente, il conteggio delle parole è ottenuto da questo frammento di codice:

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

Penso che la strategia per questo sarà:

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

Ma questo non sembra funzionare. Ho smanettato con la sintassi per un po’ e non riesco a ottenere un plugin funzionante. Ho cercato di trovare documentazione per lo sviluppo su Discourse con Ruby, ma non ho trovato nulla. Mi farebbe molto piacere se qualcuno potesse aiutarmi o indicarmi la direzione giusta. Sono anche nuovo di Ruby, quindi scusate in anticipo se si tratta solo di un errore banale.

Benvenuto a bordo! :partying_face:

Anche io sono un principiante in Ruby e ho trovato questo tutorial davvero utile per iniziare.

Ecco una serie di 7 parti sullo sviluppo di plugin per Discourse; anche se potrebbe non contenere esattamente ciò che stai cercando, è un’ottima risorsa per capire come è strutturato un plugin di Discourse.

Personalmente, imparo meglio attraverso esempi e annotando ogni singolo passaggio, quindi Rails.logger, insieme a Logster di Discourse, a cui puoi accedere tramite localhost:3000/logs, sono davvero utili per farlo.

Qui trovi la documentazione Ruby per il core di Discourse, se ti senti coraggioso e vuoi esplorare da solo.

Grazie per il tuo aiuto! Li guarderò subito.