Как заставить пользователей заполнить пользовательское поле, если оно пустое

Привет, сообщество Discourse!
Я новичок в Discourse и пытаюсь применить свои скромные знания Ruby. Спасибо за вашу помощь!
Вот мой проект:
Я создал пользовательские поля, чтобы лучше узнать новых пользователей, и теперь хочу обновить эти поля для старых пользователей.
Я хочу отображать свой вопрос при входе в систему, если поле пустое.
Если я правильно понимаю Discourse, мне нужно написать плагин.
Есть ли у вас какие-либо советы или примеры для этой первой задачи?
Заранее спасибо!

В rails console я использую

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

чтобы найти пользователей, которые уже ответили, но для остальных у меня ничего не получается…
Как получить пользователей, которые не ответили на вопрос?
Думаю, мне придётся разобраться с этим позже.

Два предложения:

  • Попробуйте уточнить, как решить вашу проблему (заставить пользователей заполнить поле). Возможно, плагин «Мастер пользователя» поможет?

  • Перенесите этот вопрос в канал Development и спросите там. Я думаю, что это можно реализовать через компонент темы, если значения находятся в сериализаторе.

В любом случае, измените тему на что-то вроде «Как заставить пользователей заполнить пользовательское поле, если оно пустое».

У меня, правда, нет очень хорошего ответа. :person_shrugging:

Для этого конкретного вопроса, предполагая, что unanswered вопрос будет NULL в базе данных, вы можете просто заменить where.not(value: [nil]) на where(value: nil).

Вы также можете использовать where(value: [nil, ""]), что эквивалентно WHERE (something.value IS NULL OR something.value = "") в SQL, для поиска пустой строки или NULL. Я не уверен, что скорее всего будет, или если это, вероятно, изменится (с NULL на “”), если пользователь отправит пустое поле.

Спасибо @pfaffman. Я последую вашему совету. :+1:

Спасибо @Simon_Manning за эту точность. Это мне очень поможет!

Этот плагин отличный. Спасибо @pfaffman

Спасибо ещё раз, ребята. Плагин для кастомного мастера работает очень хорошо :+1: