-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
非ログインユーザに対し、メンバーの古い名前が表示される #2072
Comments
該当箇所のコード: LiveLog/app/views/members/show.html.haml Lines 47 to 50 in 3d5f2d9
ログインユーザの場合、曲の公開範囲と自身が演奏しているかどうかでユーザごとに見え方が変わるため、2018年4月にキャッシュしないようにしていた: 43e2be8 Rails のフラグメントキャッシュの仕様上、対応する Song オブジェクトの updated_at が更新されていればキャッシュは失効する。が、フラグメントには Song だけでなく Play と Member オブジェクトの情報も含まれている。Play は以下の通り song アソシエーションに Line 7 in 3d5f2d9
しかし、Member については更新があっても Song の updated_at は更新されない(多対多の関係なのでするべきでもなさそう)。そのため、報告にあったように Member の情報が更新されても、Song に紐づくフラグメントのキャッシュが失効せず、古い情報が表示されてしまうという事象が発生する。
キャッシュを入れてパフォーマンスが改善するということもなさそうに見えるし、こういうバグの原因にもなるので、キャッシュやめるでよさそう。たぶん、当時フラグメントキャッシュという機能を知って使ってみたくなったとかそんな理由で入れた気がする……。 |
これは記憶ちがいだった。#7 を見ると初期から名前の編集はあったっぽい。Song フラグメントに Member 情報が表示されるようになったのがそのあとだったかなと思ったけど、これも割と初期からありそう: 9ac969c#diff-4af48fdb10576e36bd17e41b0855b26a7d5b6b80c6394d21580b65f9b0a63fed キャッシュ入れた時からの考慮漏れかな……。Member の名前はほとんど更新されないので全然気づかなかった。 |
https://ku-livelog.slack.com/archives/CQLNA742J/p1676033377690089
The text was updated successfully, but these errors were encountered: