Distinct pode ser removido devido ao índice único

No arquivo theme.rb, há:
ChildTheme.where(parent_theme_id: theme_id).distinct.pluck(:child_theme_id), onde o distinct pode ser removido devido ao índice único adicionado em discourse/db/migrate/20170313192741_add_themes.rb: add_index :child_themes, [:parent_theme_id, :child_theme_id], unique: true.

Isso indica que, para dois childthemes: ChildTheme1(id1, child_theme_id1, parent_them_id) e ChildTheme2(id2, child_theme_id2, parent_them_id), se child_theme_id1 == child_theme_id2, então id1 = id2; caso contrário, [:parent_theme_id, :child_theme_id] não seria único. Como resultado, ChildTheme.where(parent_theme_id: theme_id).pluck(:child_theme_id) retornará child_theme_ids únicos, portanto não há necessidade de incluir uma chamada à função distinct. Podemos removê-la para melhorar o desempenho.

Ok, você pode querer enviar um pull request com essa alteração.

Nota: em termos de desempenho, isso não fará diferença, mas melhora um pouco a clareza, então também apoio um PR aqui.

enviado Update theme.rb by jwjwyoung · Pull Request #8472 · discourse/discourse · GitHub