ActiveRecord::RecordNotUnique on idx_tag_users_ix1: How to fix? の議論を続けます。
エラーが再現しました。このバグを突き止める手がかりを掴んだと思います。
再現手順
-
タグ #foo を作成します
-
タグ #foo の使用をスタッフに制限します
-
グループ Bar を作成します
-
グループ Bar にタグ #foo のウォッチ通知を割り当てます
-
特権のないユーザーがグループ Bar に参加します
-
そのユーザーの #foo に対する個人通知を「通常」に変更します
-
特権のないユーザーはページを読み込めなくなります
これは2人の異なるユーザーに2回発生したため、おそらくこれが起きていることだと疑っています。エラーは次のようになります: https://oxygen.offdem.net/logs/show/f70207d3affa8967932b9122d2be212b
おそらく、タイトルは少し限定的すぎます。これは、タグのグループへの制限と個人通知に関する問題だと思います。
すべての新規ユーザーに重複エントリがあり、コンソールから削除する必要があります。
r = TagUser.connection.execute("SELECT user_id, tag_id, count(*) FROM tag_users GROUP BY tag_id, user_id HAVING count(*) > 1")
r.values.each { |uid,tag,_| TagUser.where(user_id: uid, tag_id: tag).last.destroy }
再現がうまくいっているか分かりません…
- タググループを作成する
- タググループに「#staff-tag」タグを作成する
- 「タグは全員に表示されますが、以下のグループのみが使用できます」を「staff」に設定する
* グループを作成する
* 「/manage/tags」で「#staff-tag」を「Watching」に追加する
* テストユーザー(TL2)をグループに追加する
* 設定/トラッキングでテストユーザーの「#staff-tag」が「Watching」になっていることを確認する
* 「/tags/staff-tag」に移動し、ベルアイコンを「Normal」に変更する
すべてうまくいっているようです。
この手順についてはよくわかりません。グループの通知で、グループの監視中の通知にタグを追加しました。
こちらのページのことです。
リンクを短縮しすぎたかもしれません - /g/GROUPNAME/manage/tags
それとも別の場所から試す必要がありますか?
よくわかりません。OFFDEMの前にあまり時間をかけられません。今のところ、新しいユーザーが来るたびにSQLリクエストを実行して問題を修正しています。何か見落としたことがあるかもしれません。例えば…すべてのカテゴリがデフォルトでミュートされていることが、通知に影響している可能性があります。
それが関連しているかもしれません。デフォルトで全てのカテゴリをミュートする設定を使用していますか?
「いいね!」 1