Привет, сообщество Discourse!
Я новичок в Discourse и пытаюсь применить свои скромные знания Ruby. Спасибо за вашу помощь!
Вот мой проект:
Я создал пользовательские поля, чтобы лучше узнать новых пользователей, и теперь хочу обновить эти поля для старых пользователей.
Я хочу отображать свой вопрос при входе в систему, если поле пустое.
Если я правильно понимаю Discourse, мне нужно написать плагин.
Есть ли у вас какие-либо советы или примеры для этой первой задачи?
Заранее спасибо!
В rails console я использую
UserCustomField.where.not(value: [nil])
чтобы найти пользователей, которые уже ответили, но для остальных у меня ничего не получается…
Как получить пользователей, которые не ответили на вопрос?
Думаю, мне придётся разобраться с этим позже.
Два предложения:
-
Попробуйте уточнить, как решить вашу проблему (заставить пользователей заполнить поле). Возможно, плагин «Мастер пользователя» поможет?
-
Перенесите этот вопрос в канал Development и спросите там. Я думаю, что это можно реализовать через компонент темы, если значения находятся в сериализаторе.
В любом случае, измените тему на что-то вроде «Как заставить пользователей заполнить пользовательское поле, если оно пустое».
У меня, правда, нет очень хорошего ответа. ![]()
Для этого конкретного вопроса, предполагая, что unanswered вопрос будет NULL в базе данных, вы можете просто заменить where.not(value: [nil]) на where(value: nil).
Вы также можете использовать where(value: [nil, ""]), что эквивалентно WHERE (something.value IS NULL OR something.value = "") в SQL, для поиска пустой строки или NULL. Я не уверен, что скорее всего будет, или если это, вероятно, изменится (с NULL на “”), если пользователь отправит пустое поле.
Спасибо @pfaffman. Я последую вашему совету. ![]()
Спасибо @Simon_Manning за эту точность. Это мне очень поможет!
Этот плагин отличный. Спасибо @pfaffman
Спасибо ещё раз, ребята. Плагин для кастомного мастера работает очень хорошо ![]()