ユーザーのアバターをクリックすると通知が読み込まれるという報告を受けました。(これは 2.4.0.beta10 で動作する最近のアップグレードです。)非標準のプラグインが 1 つありますが、それが原因である可能性は低く、問題の影響は 1 人のユーザーに限られているようです(少なくとも私たちが把握している限りでは)。(その後、プラグインなしでアップグレードを行いましたが、それでも問題は解決しませんでした。)safe-mode でも改善されませんでした。
特定のユーザーの /u/username/notifications にアクセスすると通知は表示されませんが、「レスポンス」や「いいね」などをクリックすると、それぞれの種類の通知にアイテムが表示されます。psql に接続し、reindex table notifications をエラーなく実行しました。
アバターをクリックすると、JavaScript コンソールで以下のエラーが発生します:
_application-4715c32620ba9b83af00144510f68ca0f0bae8f745edf2339e3f249ceee88c3f.js:77240 Uncaught TypeError: Cannot read property 'dasherize' of undefined
コードを見ると、
return [this.attach(notificationName.dasherize() + "-notification-item", attrs, {}, { fallbackWidgetName: "default-notification-item" }), (0, _virtualDom.h)("span.time", (0, _node.dateNode)(attrs.created_at))];
通知を取得する際にエラー、nil、null、または空の値が返されていることが原因ではないかと思われます(これは完全に的外れな推測かもしれませんが)。
Rails 側ではユーザーの通知を問題なく取得できます:
pry(main)> Notification.where(user_id: 870).count
=> 372
# これもデータを返します:
u=User.find(870)
Notification.recent_report(u)
もう考え付く手がかりがありません。
