Все посты, содержащие отслеживаемые слова, автоматически скрываются — score_to_hide_post равен 0.0

Я внимательно изучил код и обнаружил, что score_to_hide_post определяется следующими тремя методами:

def self.sensitivity_score_value(sensitivity, scale)
  return Float::MAX if sensitivity == 0

  ratio = sensitivity / sensitivities[:low].to_f
  high =
    (PluginStore.get("reviewables", "priority_#{priorities[:high]}") || typical_sensitivity).to_f

  # Мы хотим, чтобы это значение было труднодостижимым
  ((high.to_f * ratio) * scale).truncate(2)
end

def self.sensitivity_score(sensitivity, scale: 1.0)
  # Если балл меньше порога видимости по умолчанию, поднимем его до этого уровня.
  # В противном случае возникнет запутанная ситуация, когда пост может быть скрыт,
  # и модераторы никогда его не увидят!
  [sensitivity_score_value(sensitivity, scale), min_score_for_priority].max
end

def self.score_required_to_hide_post
  sensitivity_score(SiteSetting.hide_post_sensitivity)
end

Таким образом,
score_to_hide_post = ((high.to_f * ratio) * scale).truncate(2)

где:

  • high.to_f может неожиданно оказаться равным 0 (обычно это должно быть положительное значение),
  • ratio = sensitivity / sensitivities[:low].to_f,
  • sensitivity берётся из настройки (например, 3, 6 или 9),
  • sensitivities[:low] = 9,
  • scale = 1.0.

Это означает, что score_to_hide_post никогда не должен быть равен 0. Если же он становится равным 0, это явно указывает на ошибку.