Distinct se puede eliminar debido al índice único

En theme.rb, hay
ChildTheme.where(parent_theme_id: theme_id).distinct.pluck(:child_theme_id), donde el distinct puede eliminarse debido al índice único agregado en discourse/db/migrate/20170313192741_add_themes.rb: add_index :child_themes, [:parent_theme_id, :child_theme_id], unique: true.

Esto indica que, para dos temas hijos: ChildTheme1(id1, child_theme_id1, parent_theme_id) y ChildTheme2(id2, child_theme_id2, parent_theme_id), si child_theme_id1 == child_theme_id2, entonces id1 = id2; de lo contrario, [:parent_theme_id, :child_theme_id] no sería único. En consecuencia, ChildTheme.where(parent_theme_id: theme_id).pluck(:child_theme_id) devolverá child_theme_id únicos, por lo que no es necesario incluir la llamada a la función distinct. Podemos eliminarla para mejorar el rendimiento.

Ok, es posible que desees enviar un pull request con este cambio.

Nota: en términos de rendimiento, esto no marcará ninguna diferencia, pero sí mejora un poco la claridad, así que también apoyo un PR aquí.

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