こんにちは。既存ユーザーの意図的な選択を上書きする方法はありますか?
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
「いいね!」 1
レールコンソール(APIでも可能)を通じて行うことは可能ですが、それを行うべきかどうかは慎重に検討することをお勧めします。ユーザーが意図的にカテゴリ(またはタグやトピック)を「監視」または「ミュート」する選択をした場合、その選択を上書きすることは望ましくない可能性が高いです。ユーザーはそれを元に戻すこともできるため、何も得られないかもしれません。
「いいね!」 3
回答ありがとうございます。完全に同意します。ただし、私たちの場合は、ここで説明した現在の問題を解決するためです。Favor activity summary posts from certain category
アイデアは、新しいデフォルト設定(特定のカテゴリの監視)をロールバックし、その後、人々が好きなように変更できるようにすることです。
上記のコマンド User.all.each do |user| CategoryUser.batch_set(user, :watching, [\u003cid\u003e]) end が、すべてのユーザーの設定を変更するのに何らかの理由で機能しなかったことに気づきました。何か理由をご存知ですか?さらに良いのは、新しい監視設定を既存のユーザー監視設定に追加 することです…
追伸:私たちは非常に小さなコミュニティであり、設定を調整する時間があったのはさらに小さな割合だけであることを知っています(;
「いいね!」 1
通知レベルで特定のカテゴリを明示的に設定していない人にとっては、「デフォルトのカテゴリ監視」をリセットし、それを履歴に適用することで、それらは通常のレベルにリセットされるはずです。
数が少ない場合、UIまたはAPIを使用することは、レールコンソールよりも安全な選択肢かもしれません。何人くらいの話ですか?
「いいね!」 1
理解のために、該当するカテゴリはAnnouncements と呼ばれ、そのIDは22です。
コマンドを試す前に、まさにこれを実行しました。しかし、両方実行した後でも、Announcements の新しい投稿に対して、一部のユーザーにのみメールが送信されます。
ユーザーがメール通知を解除した可能性があります。なぜなら、_ダイジェスト_メールには「マイナーな」アクティビティのみが含まれていたからです(つまり、以前リンクされた関連問題で説明されているように、Announcements からの投稿は含まれていませんでした)。
60
「いいね!」 1
データエクスプローラーはインストールされていますか?もしそうであれば、トラッキングやメール設定が正しくないユーザーがどれくらいいるかを確認するクエリはありますか?
「いいね!」 2
良い考えですね。もう少し時間があるときにそうします!
より少ない労力で、すべてのユーザーに必要なパラメータをリセットするRailsスクリプトがあれば、私も幸せになれるでしょう。
「いいね!」 1
解決策を検討する前に、もう少し詳細を知る必要があると思います。category_users テーブルはアクティブなカテゴリ通知レベルの記録のみを保持するため、誰かがそれを持っていない場合、そのデータは rails console で変更するためにテーブルに存在しません。(例えば、管理設定の default categories watching に #site-feedback を追加すると、各ユーザーの category_users にレコードが追加され、設定をリセットするとそれらのレコードが再び削除されます)。
「いいね!」 2
User.all.each do |user| CategoryUser.batch_set(user, :watching, [22]) が、すべてのユーザーのトラッキング設定を、指定したカテゴリ(22 | お知らせ)をウォッチするように変更したことを確認しました。このクエリはすべてのユーザーをリストします。
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 様
念のため、引き続き調査・解決に努めております。特定のカテゴリ(「お知らせ」)の購読設定がデフォルトになっているにもかかわらず、新しい投稿に関するメール通知を受け取っていないユーザーの設定を特定しました。
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
このユーザーが「お知らせ」カテゴリを購読している場合のユーザーリストに対するこのユーザーの行は以下のとおりです。
id
category
user
notification_level
last_seen_at
123
Announcements
JohnDoe
3
NULL
この問題が発生する理由がわかりません。他に私が気づいていない設定はありますか?ユーザーが通知メールのいずれかで購読解除をクリックして、メール設定が変更された可能性はありますか?
よろしくお願いします!
simon
2024 年 9 月 26 日午後 6:22
12
通知メールの「購読解除」リンクをクリックすると、ユーザーは通知設定を変更できるページに移動します。例:
ユーザーが「<category_name>カテゴリのすべてのトピックの監視を停止する」または「Discourseからのメールを一切送信しない」オプションを選択した場合、その変更はユーザーの設定ページで確認できます。カテゴリが監視カテゴリリストから削除されているか、メール設定が変更され、メールページのすべての設定が「なし」に設定されます。
「このトピックの監視を停止する」オプションを選択した場合、変更を確認するのはより困難です。その場合、管理ページからユーザーになりすまし、トピックにアクセスして、トピックの通知レベルが「監視中」から「追跡中」に変更されているかどうかを確認できます。Railsコンソールからトピックの通知レベルに関する情報を取得することもできます。
これに深入りする前に、サイトの「スキップされたメールログ」ページにアクセスしてください。管理サイドバーから移動できます。「宛先」フィールドにユーザーのメールアドレスを入力します。これにより、特定のメールがユーザーに送信されなかった理由に関する詳細が表示される場合があります。
「いいね!」 3
返信ありがとうございます。
スキップされたメールのセクションを確認しました。「ユーザーが最近アクティブだった」、「ユーザー自身の投稿に対するメーリングリスト通知が無効になっている」、「bounce_score_thresholdを超えた」のケースのみでした。
以下のいずれかの方法で、すべてのユーザーの設定を変更する可能性はありますでしょうか?
すべてのユーザーの設定を、「あたかも」サインアップしたばかりかのように変更する。
または:新しいテストユーザーを作成し、その設定を既存の他のすべてのユーザーに貼り付ける。
simon
2024 年 11 月 12 日午後 7:25
14
「デフォルトカテゴリの監視」というサイト設定があります。これを変更すると、履歴的に変更を適用するオプションが表示されます。そのオプションを選択すると、すべてのユーザーの設定が更新されますが、設定ページでそのカテゴリの設定を明示的に構成したユーザーは除外されます。これが、あなたが回避しようとしている問題だと思います。Railsコンソールから対処できるかもしれませんが、そのアプローチは避けた方が良いでしょう。
アナウンス用の新しいカテゴリを作成し、そのカテゴリをサイトの「デフォルトカテゴリの監視」サイト設定に追加するだけで済みます。その後、古いアナウンスカテゴリから新しいカテゴリにトピックを移動することで、サイトを整理できます。カテゴリ名を「アナウンス」にしたい場合は、まず元の「アナウンス」カテゴリの名前を別のものに変更してください。これは少しハックですが、Railsコンソールに触れることなく問題を解決する方法です。
「いいね!」 1
system
(system)
クローズされました:
2024 年 12 月 12 日午後 7:25
15
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.