你好。有没有办法覆盖现有用户已有的选择?
我尝试了 UserOption.update_all(default_categories_watching: <id>) 和 UserOption.update_all(watched_categories: <id>),但这些不是用户选项……
编辑和解决方案:User.all.each do |user| CategoryUser.batch_set(user, :watching, [<id>]) end
你好。有没有办法覆盖现有用户已有的选择?
我尝试了 UserOption.update_all(default_categories_watching: <id>) 和 UserOption.update_all(watched_categories: <id>),但这些不是用户选项……
编辑和解决方案:User.all.each do |user| CategoryUser.batch_set(user, :watching, [<id>]) end
可以通过 Rails 控制台(也可以通过 API)来完成,但我会仔细考虑您是否应该这样做。如果用户故意选择“关注”或“静音”某个类别(或标签或主题),那么覆盖他们的选择可能会适得其反。他们也可以简单地将其恢复原状,因此您可能不会获得任何收益。
感谢您的回答。我完全同意。不过在我们的案例中,这是为了解决我在此描述的当前问题:Favor activity summary posts from certain category
我们的想法是回滚新的默认设置(关注某个类别),然后让人们根据自己的意愿进行更改。
我现在注意到上面的命令 User.all.each do |user| CategoryUser.batch_set(user, :watching, [\u003cid\u003e]) end 某种程度上未能更改所有用户的偏好设置。有什么想法为什么吗?甚至更好的是将新的跟踪偏好设置附加到现有的用户跟踪偏好设置中……
附注:我们是一个小型社区,我知道只有更小的一部分人花时间调整了他们的偏好设置(;
对于任何没有在通知级别专门设置类别的人来说,重置“默认类别观看”并历史性地应用它应该会将这些重置到正常水平。
如果数量很少,使用用户界面或API可能比使用rails控制台更安全。我们说的是多少人?
为了便于理解,所讨论的类别名为 Announcements,其 ID 为 22。
我在尝试命令之前也完全这样做了。但之后,在 Announcements 的新帖子中,只有部分用户收到了电子邮件。
可能发生的情况是,用户退订了电子邮件通知,因为“摘要”电子邮件仅包含“次要”活动(即,没有来自 Announcements 的帖子,如先前链接的相关问题中所述)。
60
您是否安装了数据浏览器?如果安装了,您是否有查询来查看有多少用户没有正确的跟踪和/或电子邮件偏好设置?
好主意。等我有更多时间时我会做的!
更小的即时工作量,一个重置所有用户必要参数的 Rails 脚本也会让我满意。
在制定解决方案之前,我认为我们需要了解更多细节。category_users 表只记录活跃的类别通知级别,因此如果某人没有级别,数据将不会在表中,无法通过 rails 控制台进行更改。(例如,如果我在 default categories watching 管理员设置中添加 #site-feedback,它将为每个用户在 category_users 中添加一条记录,当我重置该设置时,它将再次删除这些记录)。
我确认 User.all.each do |user| CategoryUser.batch_set(user, :watching, [22]) 已将所有用户的跟踪偏好设置为监视所需类别(22 | Announcements);因为此查询列出了所有用户:
SELECT *
FROM category_users
WHERE category_id = '22' AND notification_level = '3'
而此查询仅列出 1 个用户:
SELECT *
FROM user_options uo
WHERE uo.email_level = '2'
现在的问题是,为什么在类别 22“公告”中有新帖子时,许多用户没有收到电子邮件通知 ![]()
附注:我尝试编写 SQL 查询,但不知道如何将它们连接起来。
您好。我还没有找到解决方案。我无法理解接收已关注主题的帖子通知电子邮件所需的用户偏好设置。有什么想法吗?谢谢!
您好 @JammyDodger
以防万一,我仍在调查并尝试解决此问题。我隔离了我们一位用户 who has the default settings of watching a certain category (‘Announcements’) but who does not receive e-mail notifications for new posts 的设置:
| user | mailing_list_mode | email_digests | external_links_in_new_tab | enable_quoting | dynamic_favicon | automatically_unpin_topics | digest_after_minutes | auto_track_topics_after_msecs | new_topic_duration_minutes | last_redirected_to_top_at | email_previous_replies | email_in_reply_to | like_notification_frequency | mailing_list_mode_frequency | include_tl0_in_digests | notification_level_when_replying | theme_key_seq | allow_private_messages | homepage | theme_ids | hide_profile_and_presence | text_size_key | text_size_seq | email_level | email_messages_level | title_count_mode_key | enable_defer | timezone | enable_allowed_pm_users | dark_scheme | skip_new_user_tips | color_scheme | default_calendar | oldest_search_log_date | chat_enabled | only_chat_push_notifications | chat_sound | dismissed_channel_retention_reminder | dismissed_dm_retention_reminder | bookmark_auto_delete_preference | ignore_channel_wide_mention | chat_email_frequency | enable_experimental_sidebar | seen_popups | chat_header_indicator_preference | sidebar_link_to_filtered_list | sidebar_show_count_of_new_items | watched_precedence_over_muted | chat_separate_sidebar_mode | topics_unread_when_closed | show_thread_title_prompts |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| JohnDoe | false | true | true | true | false | true | 10080 | 240000 | 2880 | 2023-06-13T08:25:13.000Z | 1 | false | 1 | 1 | true | 2 | 0 | true | NULL | {} | false | 0 | 0 | 1 | 1 | 0 | false | Europe/Somewhere | false | NULL | false | NULL | 0 | NULL | true | NULL | NULL | NULL | NULL | 3 | NULL | 1 | false | {1,2,3,4,5} | 0 | false | false | NULL | 0 | true | true |
I really can’t see why this issue arises because this is the user’s line when I query the users watching category ‘Announcements’:
| id | category | user | notification_level | last_seen_at |
|---|---|---|---|---|
| 123 | Announcements | JohnDoe | 3 | NULL |
Are there any other settings I am missing ? Could it be that the user clicked unsubscribe in one of the notification emails and that changed their email settings ?
Thanks !
点击通知邮件中的“取消订阅”链接会将用户带到一个可以更改其通知偏好的页面。例如:
如果用户选择了“停止关注<category_name>类别中的所有主题”或“不要向我发送任何来自 Discourse 的邮件”选项,您将在他们的偏好设置页面上看到更改。该类别将从他们关注的类别列表中移除,或者他们的电子邮件偏好设置将更改为电子邮件页面上的所有设置都将设置为“从不”。
如果用户选择了“停止关注此主题”选项,则更难看到更改。在这种情况下,您可以从管理员页面模拟用户,然后访问该主题,看看他们对该主题的通知级别是否已从“关注”更改为“跟踪”。您还可以从 Rails 控制台获取有关他们对该主题的通知级别的信息:
在对此进行过多研究之前,请转到站点的“跳过电子邮件日志”页面。您可以从管理员侧边栏导航到它。在页面顶部的“收件人”字段中输入用户的电子邮件。它可能会向您显示有关为什么未将特定电子邮件发送给用户的详细信息。
感谢您的回复。
我检查了跳过的电子邮件部分。只有“用户最近被看到”、“用户已禁用自己帖子的邮件列表通知”和“超过 bounce_score_threshold”这几种情况。
我想知道是否有可能通过以下任一方式更改所有用户的设置:
有一个名为“默认类别监视”的站点设置。如果更改它,您将可以选择历史性地应用更改。选择该选项将更新所有用户的偏好设置,_除了_那些在其偏好设置页面上明确配置了该类别偏好设置的用户。我认为这就是您试图绕过的问题。您或许可以从 Rails 控制台处理它,但我可能会避免这种方法。
您可以创建一个新的公告类别,并将其添加到您站点的“默认类别监视”站点设置中。然后,您可以将主题从旧公告类别移动到新类别来整理站点。如果您想保留类别名称“announcements”,请先将原始“announcements”类别重命名为其他名称。我知道这有点像一种解决方法,但这是在不接触 Rails 控制台的情况下解决问题的一种方法。
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.