어떤 사용자의 아바타를 클릭할 때 알림이 로드된다는 보고를 받았습니다. (최근 2.4.0.beta10 버전으로 업그레이드했습니다.) 비표준 플러그인이 하나 있지만, 이것이 원인으로 보이며 문제가 발생하고 있는 사용자는 단 한 명뿐입니다(최소 우리가 아는 범위에서는). (그리고 제 플러그인을 제외하고 업그레이드를 다시 해봤지만 문제가 해결되지 않았습니다.) 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)
더 이상 아이디어가 없습니다.
