Der doppelte # lässt die Validierung der Objektkonfiguration im Kern fehlschlagen (nicht unbedingt in diesem TC).
bad URI(is not URI?): "https://matrix.to/#/#matrix-meta-chat:fedoraproject.org" (URI::InvalidURIError)
Es ist kein streng gültiger URI, daher müssten Sie das Fragment kodieren.
Hier funktioniert die Verwendung von https://matrix.to/#/%23matrix-meta-chat:fedoraproject.org.
Wenn man sich den Code ansieht:
https://github.com/discourse/discourse/blob/main/lib/theme_settings_object_validator.rb#L191-L193
is_valid_url ist hier definiert:
Sie sehen, dass sie bereits eine andere Funktion haben, um mit dieser Situation umzugehen, und diese wird an anderen Stellen verwendet:
Ich denke, es ist vernünftig, relaxed_parse für die URL-Validierung von Theme-Objekten zu verwenden.
Z. B.: if validations&.dig(:url) && !UrlHelper.relaxed_parse?(value)