Distinct kann aufgrund eines eindeutigen Index entfernt werden

In theme.rb gibt es
ChildTheme.where(parent_theme_id: theme_id).distinct.pluck(:child_theme_id), wobei das distinct entfernt werden kann, da in discourse/db/migrate/20170313192741_add_themes.rb ein eindeutiger Index hinzugefügt wurde: add_index :child_themes, [:parent_theme_id, :child_theme_id], unique: true.

Dies bedeutet, dass für zwei ChildThemes: ChildTheme1(id1, child_theme_id1, parent_them_id) und ChildTheme2(id2, child_theme_id2, parent_them_id), falls child_theme_id1 == child_theme_id2 gilt, dann auch id1 = id2 sein muss; andernfalls wäre [:parent_theme_id, :child_theme_id] nicht eindeutig. Daher wird ChildTheme.where(parent_theme_id: theme_id).pluck(:child_theme_id) bereits eindeutige child_theme_id-Werte zurückgeben, sodass kein Aufruf der distinct-Funktion erforderlich ist. Wir können ihn entfernen, um die Leistung zu verbessern.

Ok, du solltest möglicherweise einen Pull Request mit dieser Änderung einreichen.

Hinweis: Leistungstechnisch macht das keinen Unterschied, aber es verbessert die Lesbarkeit etwas, daher unterstütze ich hier auch einen PR.

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