Warum generiert meine Website immer noch einen kodierten Slug, auch wenn SiteSetting.slug_generation_method = none ist

Vor einigen Tagen habe ich SiteSetting.slug_generation_method auf encoded gesetzt, um einen Chat-Kanal zu starten (aber das Chat-Plugin überhaupt nicht zu aktivieren). Ich sehe, dass die URL im chinesischen Gebietsschema hässlich ist, also habe ich SiteSetting.slug_generation_method wieder auf none gesetzt.

Jedoch generiert die Seite immer noch Slugs in neuen Themen (nicht alle, aber einige wenige). Ich habe keine Ahnung, was damit falsch ist. Ich habe versucht, Topic.update_all(slug: "topic") oder Topic.update_all(slug: nil) auszuführen, um den Slug zu aktualisieren, aber immer noch sind die Slugs einiger Themen der kodierte Titel.

1 „Gefällt mir“

Ein weiteres Problem ist, dass ich kein Thema mit einem kodierten Slug eingeben kann und ERR_TOO_MANY_REDIRECTS erhalte. Diese Art von Themen mit kodiertem Slug wird generiert, nachdem ich SiteSetting.slug_generation_method auf none gesetzt habe.

Das Log zeigt

Started GET "/t/%E6%88%91%E4%B9%9F%E8%83%BD%E6%89%BE%E5%88%B0%E5%B1%9E%E4%BA%8E%E6%88%91%E7%9A%84%E9%98%B3%E5%85%89%E5%A4%A7%E7%94%B7%E5%AD%A9%E5%90%97/112562/39" for 10.182.185.76 at 2022-11-23 19:35:09 +0800
  Rendered text template (Duration: 0.0ms | Allocations: 1)
Processing by TopicsController#show as HTML
  Parameters: {"slug"=>"我也能找到属于我的阳光大男孩吗", "topic_id"=>"112562", "post_number"=>"39"}
Redirected to https://my-domain/t/%E8%BF%98%E6%9C%89%E4%B8%8D%E5%88%B040%E5%A4%A9%EF%BC%8C2022%E5%B9%B4%E5%B0%B1%E7%BB%93%E6%9D%9F%E4%BA%86%EF%BC%8C%E8%AF%B7%E7%94%A8%E4%B8%80%E4%B8%AA%E5%AD%97%E6%88%96%E8%80%85%E8%AF%8D%E8%AF%AD%E6%9D%A5%E8%AF%84%E4%BB%B7%E5%AE%83%E5%90%A7/112489
Completed 301 Moved Permanently in 176ms (ActiveRecord: 0.0ms | Allocations: 19880)

Ich habe den Code gelesen, vielleicht gibt slugs_do_not_match true zurück, da %E6%88%91%E4%B9%9F%E8%83%BD%E6%89%BE%E5%88%B0%E5%B1%9E%E4%BA%8E%E6%88%91%E7%9A%84%E9%98%B3%E5%85%89%E5%A4%A7%E7%94%B7%E5%AD%A9%E5%90%97 != 我也能找到属于我的阳光大男孩吗 ist. Und das verursacht eine Weiterleitung.

  def slugs_do_not_match
    if SiteSetting.slug_generation_method != "encoded"
      params[:slug] && @topic_view.topic.slug != params[:slug]
    else
      params[:slug] && CGI.unescape(@topic_view.topic.slug) != params[:slug]
    end
  end

Das Problem ist also dasselbe, d.h. warum generiert meine Website einen kodierten Slug, wenn SiteSetting.slug_generation_method bereits auf none gesetzt ist.