Wie kann ich Benutzer zwingen, ein benutzerdefiniertes Feld auszufüllen, wenn es leer ist

Hallo Discourse Community!
Ich bin neu bei Discourse und versuche, mein geringes Ruby-Wissen anzuwenden. Vielen Dank für Ihre Hilfe!
Hier ist mein Projekt:
Ich habe benutzerdefinierte Felder erstellt, um neue Benutzer besser kennenzulernen, und jetzt möchte ich die benutzerdefinierten Felder für alte Benutzer aktualisieren.
Ich möchte meine Frage beim Login anzeigen, wenn das Feld leer ist.
Wenn ich Discourse richtig verstehe, muss ich ein Plugin programmieren.
Haben Sie einen Tipp oder ein Beispiel für diese erste Herausforderung?
Vielen Dank im Voraus!

1 „Gefällt mir“

In der Rails-Konsole verwende ich

UserCustomField.where.not(value: [nil])

um Benutzer zu finden, die bereits geantwortet haben, aber für den Rest trockne ich aus…
Wie bekomme ich Benutzer, die die Frage noch nicht beantwortet haben?
Ich schätze, ich muss das später herausfinden.

Zwei Vorschläge:

  • Überlegen Sie, wie Sie Ihr Problem lösen können (Benutzer dazu bringen, das Feld auszufüllen). Könnte das Benutzer-Assistent-Plugin eine Lösung sein?

  • Verschieben Sie dies nach Dev und fragen Sie dort. Ich denke, es könnte mit einer Theme-Komponente möglich sein, wenn die Werte im Serializer sind.

Ändern Sie für beides das Thema in etwas wie “Wie kann ich Benutzer zwingen, ein benutzerdefiniertes Feld auszufüllen, wenn es leer ist”.

Ich habe jedoch keine sehr gute Antwort. :person_shrugging:

1 „Gefällt mir“

Für diese spezielle Frage, vorausgesetzt, eine unbeantwortete Frage ist in der Datenbank NULL, können Sie einfach where.not(value: [nil]) durch where(value: nil) ersetzen.

Sie können auch where(value: [nil, ""]) verwenden, was in SQL WHERE (something.value IS NULL OR something.value = "") entspricht, um nach einem leeren String oder NULL zu suchen. Ich bin mir nicht sicher, was wahrscheinlich ist oder ob es wahrscheinlich ist, dass sich dies ändert (von NULL zu “”), wenn ein Benutzer ein leeres Feld übermittelt.

1 „Gefällt mir“

Danke @pfaffman. Ich werde Ihren Rat befolgen. :+1:

2 „Gefällt mir“

Danke @Simon_Manning für diese Präzision. Das wird mir sehr helfen!

2 „Gefällt mir“

Dieses Plugin ist großartig. Danke @pfaffman

2 „Gefällt mir“

Danke nochmals, Leute. Das benutzerdefinierte Zauberer-Plugin funktioniert sehr gut :+1:

2 „Gefällt mir“