如何为所有用户启用“自动暗模式配色方案”,以覆盖其帐户设置?
我猜你需要强制用户,禁用选择配色方案的功能。
转到设置 → 自定义 → 颜色 → 用户可以选择配色方案(禁用它)
然后返回样式并指定一个配色方案,该方案将强制显示给用户。
它设置为深色主题
有几位用户报告说此设置未对他们启用,并且他们在启用该设置后遇到查看深色模式下徽标的问题,这可以解决此问题。
我想知道为什么此设置未对所有用户启用。因此,我一直在寻找一种方法来强制为所有用户启用它。
您无法通过界面执行此操作。
您可以使用 rails 命令批量更新用户选项,但需要谨慎操作。
我建议您首先使用数据浏览器等工具检查有多少用户禁用了此设置。如果数量不多,您可以手动设置或要求用户自行设置。
我认为您还应该检查创建帐户时的默认值。
谢谢,您能告诉我 rails 命令吗?
我已经安装了数据浏览器,您能告诉我一个脚本来查看有多少用户启用了它吗?
非常感谢您的帮助。![]()
默认情况下,深色模式用户设置为“与常规相同”。
在数据库中,它由 user_options.dark_scheme 值为 NULL 定义。
“深色”为 -1。其他值为正整数。
返回没有默认值的用户的查询将是:
SELECT
u.username,
up.dark_scheme_id
FROM
users AS u
JOIN
user_options AS up
ON
u.id = up.user_id
WHERE up.dark_scheme_id IS NOT NULL
有 59 个结果。
现在我如何使用 rails 命令批量更改它们的设置?
我现在有点困惑。你为什么要打破用户对颜色的选择?如果你不想提供选择,那就卸载除默认的浅色和深色之外的所有配色方案。就这样。
您可以通过此 Rails 脚本为更改此偏好的用户重置该偏好:
UserOption.where.not(dark_scheme_id: nil).find_each do |uo|
uo.update(dark_scheme_id: nil)
end
我已在我的测试实例上成功使用了它,但请记住,我不是 Rails 专家,并且,当然,请务必先进行备份。 ![]()
为了清楚起见,您屏幕截图中的设置来自管理员面板(服务器范围),而不是个人偏好。
后者是:

不,这是用户偏好设置,当您从网站设置中启用自动暗模式时,它会显示给用户。
那么我必须这样做才能清楚:
cd /var/discourse
./launcher enter app
然后
UserOption.where.not(dark_scheme_id: nil).find_each do |uo|
uo.update(dark_scheme_id: nil)
end
对吗?
请看这里:
这都是关于这个的。
好的。我必须禁用配色方案才能显示此选项。我将再次阅读此主题,以便更好地理解。
是的!它是“默认暗模式配色方案 ID”
好的,取消勾选“启用自动暗模式配色方案”会将 user_options.dark_scheme 设置为 -1,而勾选则将其设置为 NULL。
因此,如果您希望所有用户都勾选此设置,您可以使用我的脚本。
新用户创建时的默认设置也是勾选。
之后运行 rails c 进入 rails 控制台。
如果脚本输出了日志,您可以按 q 退出。

