(Ruby) Selecionando apenas posts feitos por quem não é o autor original

Olá, pessoal!

Comecei a fazer voluntariado em uma comunidade recentemente e fui encarregado de atualizar um plugin existente. Esse plugin atualmente altera a tag de um tópico quando ele atinge um determinado limite de contagem de palavras. Devo convertê-lo para contar apenas as palavras dos posts no tópico que não sejam do criador do tópico.

Atualmente, a contagem de palavras é feita por este trecho de código:

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

Estou pensando que a estratégia para isso será:

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

Mas isso não parece funcionar. Tenho estado mexendo com a sintaxe por um tempo e não consigo obter um plugin funcional a partir disso. Tenho tentado encontrar documentação para desenvolvimento no Discourse com Ruby e não tenho encontrado nada útil. Gostaria muito que alguém pudesse me ajudar ou me indicar o caminho certo. Também sou novo em Ruby, então peço desculpas antecipadamente se for apenas um erro bobo.

Bem-vindo a bordo! :partying_face:

Eu também sou iniciante em Ruby e achei este tutorial muito útil para começar.

Aqui está uma série de 7 partes sobre o desenvolvimento de plugins do Discourse. Embora possa não conter exatamente o que você procura, é um ótimo recurso para ajudar a entender como um plugin do Discourse é estruturado.

Pessoalmente, aprendo melhor por meio de exemplos e registrando cada etapa do processo. Por isso, o Rails.logger, junto com o Logster do Discourse, ao qual você pode acessar via localhost:3000/logs, são muito úteis para isso.

Aqui está a documentação em Ruby para o núcleo do Discourse, caso você se sinta corajoso e queira explorar por conta própria.

Obrigado pela sua ajuda! Vou dar uma olhada nisso imediatamente.