Crius
(Crius)
1
今天早上我发现,在过去的 2 周里,我们已经耗费了超过 5000 个电子邮件积分,因为在我们大约 1000 名活跃用户中,只有大约 60 名用户启用了电子邮件通知。
我已经从管理员设置中禁用了电子邮件,并对所有人进行了追溯性操作,还添加了一个 CSS 来隐藏用户控制面板中的电子邮件设置。
这是该设置的截图。它之前就是这样的,但我再次设置它,以触发一个模态框,询问我是否要追溯性地更改现有用户的设置。
我还开了一个帖子,向用户解释这次更改的原因,以及不幸的是,Discourse 不允许对我可以从自己的论坛发送哪些电子邮件进行精细控制,所以我要么允许每个人设置他们想要的任何内容,要么只允许管理员(或者没有人,但这在非常特定的边缘情况下几乎没有用)。
回复我的用户之一告诉我,他们仍然收到电子邮件。
我执行重置大约是在上午 10 点。这是该用户收件箱的截图。
我冒充了该用户以确保没有问题,并再次启用了该设置的可见性以进行验证,确实,尽管管理员面板中的选项告诉我它们会被更改,但设置并未被更改。
是否有任何 rails 命令可以运行,以确保所有用户都已关闭这些选项(设置为从不),正如他们应该的那样?
1 个赞
在历史性地应用更改时,它只会重置那些尚未手动选择偏好设置的用户,以避免覆盖任何个人选择(例如,为已选择退出电子邮件的用户启用电子邮件)。它提供的数字应告诉您受影响的用户数量,这仅限于符合条件的用户,而不一定是用户的总数。
您应该能够使用 rails 控制台为那些用户偏好设置值。
此主题中应该有一些技巧 Edit a user preference for everyone or a subset of users
4 个赞
Crius
(Crius)
3
以防万一有人需要。我对 Ruby 一无所知,而且这个论坛上的旧帖子似乎已经过时了。
目前,正确重置每个用户这些选项的 psql 查询是:
UPDATE user_options SET email_messages_level = 2, email_level = 2, email_previous_replies = 2;
4 个赞
pfaffman
(Jay Pfaffman)
4
这是 Rails 的方式:
UserOption.all.update_all(email_messages_level: 2, email_level: 2, email_previous_replies: 2)
5 个赞
system
(system)
关闭
14
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.