提出物一覧ページの「未アサイン」タブのバッジに表示する件数を適切に増減させる #3795
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
目的
以下の Issue の対応
Refs: #3646
やったこと
担当者が更新されたときに提出物の未アサイン件数のキャッシュを削除するようにした
以下2パターンで削除するようにした
未アサイン件数のキャッシュを削除する条件に「削除された提出物が『未アサイン』であること」を追加した
アサイン済み(担当のいる)の提出物が削除されたときは未アサイン件数は変わらないため、その場合はキャッシュを削除せず、「未アサイン」の場合のみキャッシュを削除するようにした。今までは「未アサイン」かどうかによらずキャッシュを削除していた。
テストを追加した
未アサイン件数のキャッシュが増減することを確認するテストを追加
動作確認
すべての確認項目に共通すること
$ rails dev:cache
を実行してキャッシュを有効にした状態で確認するkomagata
など)としてログインする確認項目
以下、補足説明
未アサイン件数の表示箇所(「未アサイン」タブのバッジ)のキャプチャ
動作確認をするときの注意事項
development モードと test モードの場合はデフォルトでキャッシュが無効になっているため、ローカルでサーバーを起動して動作確認するとき(development モードのとき)や
$ rails test xxx
を実行するとき(test モードのとき)は、以下のようにして事前にキャッシュを有効にしておく必要があります。development モード
$ rails dev:cache
を実行してキャッシュのオン/オフを切り替える(オンにする)test モード
config/environments/test.rb
を修正し、キャッシュストアとして:memory_store
(ActiveSupport::Cache::MemoryStore )を使うように設定する#3646 でテストが落ちる原因
未アサイン(担当のいない)の提出物に担当がついたときに、未アサイン件数のキャッシュが削除されていないため
※ キャッシュが削除されないと、オリジナルの値に変更があっても更新されない
未アサイン件数が増減する(キャッシュを削除するべき)条件と、その対応の要不要
#3646 テストの手順以外にもキャッシュが削除されていないケースがないか確認するために調査した。
調査した結果、以下の表の条件で未アサイン件数が増減することがわかった。また、それぞれの条件について対応の要不要を調べた。
凡例
○: 対応不要(キャッシュを削除できている)
△: 対応が必要(キャッシュを削除できているけれど、削除不要なときも削除している)
×: 対応が必要(キャッシュを削除できていない)
キャッシュ削除の具体的な条件
具体的にどのような条件でキャッシュを削除するか表に整理した。↑の表と同じ条件は「条件No. 」の値を同じにしている。
※表の読み方: 【モデル】のレコードを 【作成/更新/削除】するときにレコードが【条件1】かつ【条件2】かつ【条件3】... の場合はキャッシュを削除する。なお、その後はキャッシュに保持する値が【キャッシュの増減値】される。