Olá comunidade Discourse!
Sou novo no Discourse e estou tentando usar meus poucos conhecimentos de Ruby. Obrigado pela ajuda!
Aqui está o meu projeto:
Criei campos personalizados para conhecer melhor um novo usuário e agora quero atualizar o campo personalizado para usuários antigos.
Quero exibir minha pergunta no login se o campo estiver vazio.
Se entendi o Discourse corretamente, preciso codificar um plugin.
Você tem alguma dica ou exemplo em mente para este primeiro desafio?
Agradeço antecipadamente!
No console do Rails, eu uso
UserCustomField.where.not(value: [nil])
para encontrar usuários que já responderam, mas para o resto eu seco…
Como obter os usuários que não responderam à pergunta?
Acho que terei que descobrir isso mais tarde.
Duas sugestões:
-
Considere perguntar como resolver seu problema (fazer com que os usuários preencham o campo). O plugin de assistente de usuário pode ser uma solução?
-
Mova isso para Dev e pergunte lá. Acho que pode ser possível com um componente de tema se os valores estiverem no serializador.
Para qualquer um dos casos, altere o assunto para algo como “como posso forçar os usuários a preencher um campo personalizado quando ele está vazio”
Não tenho uma resposta muito boa, no entanto. ![]()
Para essa pergunta específica, assumindo que uma pergunta não respondida será NULL no banco de dados, você pode simplesmente substituir where.not(value: [nil]) por where(value: nil).
Você também pode usar where(value: [nil, ""]), que é equivalente a WHERE (something.value IS NULL OR something.value = "") em SQL, para procurar por uma string vazia ou NULL. Não tenho certeza de qual é mais provável ou se é provável que mude (de NULL para “”) se um usuário enviar um campo vazio.
Obrigado @pfaffman. Seguirei seu conselho. ![]()
Obrigado @Simon_Manning por essa precisão. Isso vai me ajudar muito!
Este plugin é ótimo. Obrigado @pfaffman
Obrigado novamente, pessoal. O plugin de assistente personalizado funciona muito bem ![]()