如何强制用户填写自定义字段(当它为空时)

您好,Discourse 社区!
我是 Discourse 新手,正在尝试运用我有限的 Ruby 知识。感谢您的帮助!
这是我的项目:
我创建了自定义字段,以便更好地了解新用户,现在我想为旧用户更新自定义字段。
如果字段为空,我想在用户登录时显示我的问题。
如果我理解 Discourse 的话,我需要编写一个插件。
您有什么建议或示例可以为我这个初次挑战提供吗?
提前感谢!

1 个赞

在 rails 控制台中,我使用

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

来查找已经回复的用户,但对于其他人我将进行干燥……
如何获取尚未回答问题的用户?
我想我以后需要弄清楚这一点。

两个建议:

  • 考虑询问如何解决您的问题(让用户填写字段)。用户向导插件可能是一个解决方案?

  • 将此移至 Dev 并询问。我认为如果值在序列化器中,则可以通过主题组件实现。

对于以上任何一种情况,请将主题更改为类似“如何强制用户在自定义字段为空时填写”的内容。

不过,我没有很好的答案。 :person_shrugging:

1 个赞

对于这个问题,假设数据库中未回答的问题为 NULL,您可以将 where.not(value: [nil]) 替换为 where(value: nil)

您还可以使用 where(value: [nil, ""]),这在 SQL 中等同于 WHERE (something.value IS NULL OR something.value = ""),用于搜索空字符串或 NULL。我不确定哪种情况可能性更大,或者如果用户提交空字段,它是否会从 NULL 变为 “”。

1 个赞

感谢 @pfaffman。我会听取您的建议。 :+1:

2 个赞

感谢 @Simon_Manning 提供的精确信息。这将对我大有帮助!

2 个赞

这个插件很棒。谢谢 @pfaffman

2 个赞

再次感谢各位。自定义向导插件效果非常好 :+1:

2 个赞