bootcamp
bootcamp copied to clipboard
ユーザー検索で休会・退会ユーザーも引っかかるようにする
Issue
- #7396
概要
ユーザー検索で休会・退会ユーザーも引っかかるようにする
変更確認方法
-
feature/searchable_suspended_and_unsubscribed_users
をローカルに取り込む - メンターでログインをする
-
http://localhost:3000/users
にアクセスし、ユーザー一覧を表示する - 「全員」タブを選択する
- 検索欄から休会ユーザー名、退会ユーザー名を検索して表示されることを確認する(ユーザー例: yameo, kyuukai)
- 右上の検索バーから休会ユーザー名、退会ユーザー名を検索して表示されることを確認する(ユーザー例: yameo, kyuukai) ※ 右上の検索バーから休会ユーザー名は元々表示されます。
Screenshot
変更前
変更後
@nishitatsu-dev お疲れ様です。 こちらレビューお願いしてもよろしかったでしょうか?🙏 特に期限は設けていませんのでお手隙の際にご確認いただければと思います🙏
@kurumadaisuke レビュー承知しました〜 1週間以内に対応しますので、少々お待ちください🙏
@komagata 本issueの対応方法について質問させてください
Searchableモジュールの変更方針について
FBCアプリの右上に存在する検索処理ではSearchableモジュールを利用しており、約10個のモデルファイルにincludeされています。
その中でapp/models/user.rb
がscope :search_by_keywords_scope, -> { unretired }
を利用して検索結果を制限しています。
変更方法案①
Searchableモジュール自体は変更せず、代わりに利用者側の変更を行います。
具体的には、app/models/user.rb
内のscope :search_by_keywords_scope, -> { unretired }
の行を削除します。
変更方法②
Searchableモジュール自体を変更し、scope :search_by_keywords_scope, -> { all }
を削除します。この変更に伴い、利用者側のapp/models/user.rb
でも同じくscope :search_by_keywords_scope, -> { unretired }
を削除します。
※ どちらの方針でも、app/models/user.rb
内のscope :search_by_keywords_scope
の削除が必要です。
もしくは、他の方法を用いるべきでしょうか?🙏
メンターの検索:「表示人数が少ない問題」への対応について
localhost:3000/users?target=all
で表示される人数がdb/fixtures/users.yml
では77人のユーザーが定義されていますが、hibernated_at
やretired_on
に値を持つユーザーがカウントされないため、「全員(67)」となっています。
表示される全員の数値は本issueでの対応範囲となりますでしょうか?
@kurumadaisuke
本issueの対応方法について質問させてください
まだ判断するための材料がたりないとおもうので、それぞれの影響範囲(実際のどのページにもちいられるか。そのページが変わっても問題ないか)を調べてみてください。
そのうえで @kurumadaisuke さんがどうすべきだと思うかも考えてみてください。
メンターの検索:「表示人数が少ない問題」への対応について
メンターの検索というのはどういう意味でしょうか?
@komagata
まだ判断するための材料がたりないとおもうので、それぞれの影響範囲(実際のどのページにもちいられるか。そのページが変わっても問題ないか)を調べてみてください。 そのうえで @kurumadaisuke さんがどうすべきだと思うかも考えてみてください。
こちら調査した後に回答いたします。
メンターの検索というのはどういう意味でしょうか?
一般ユーザー(受講生)からの「ユーザー」タブを選択した時の表示内容と メンターから「ユーザー」タブを選択するのでは、表示が異なっており(メンターの方が多く表示されている)メンターが「ユーザー」タブを選択した状態をメンターの検索という風に言っていました🙏
@kurumadaisuke
一般ユーザー(受講生)からの「ユーザー」タブを選択した時の表示内容と メンターから「ユーザー」タブを選択するのでは、表示が異なっており(メンターの方が多く表示されている)メンターが「ユーザー」タブを選択した状態をメンターの検索という風に言っていました🙏
「言っていました」というのはどういう意味でしょうか?
@komagata
「言っていました」というのはどういう意味でしょうか?
すいません。 言葉足らずでした🙏
一般ユーザー(受講生)からの「ユーザー」タブを選択した時の表示内容と メンターから「ユーザー」タブを選択するのでは、表示が異なっており(メンターの方が多く表示されている)メンターが「ユーザー」タブを選択した状態を「メンターの検索」という意味で使った言葉になります🙏
@kurumadaisuke なるほどです!
@komagata https://github.com/fjordllc/bootcamp/pull/7435#issuecomment-2014380301
こちら調査してみたのですが、Searchableモジュールのscope :search_by_keywords_scope, -> { all }
の部分を使っているのがapp/models/user.rb
のscope :search_by_keywords_scope, -> { unretired }
だけだったので使わないコードはなるべく削除したほうが良いっと考え、大元のscope :search_by_keywords_scope, -> { all }
を削除して影響範囲(テスト)がどうなるか確認をしました。
テストの結果は一つ失敗しましたが、元々退会/休会ユーザーが表示されないことを確認するテストだったのでアプリ自体の仕様が変わったので、テスト自体を修正しました。
なので調査結果では、大元を削除しても影響範囲がほとんどないっと考え不要なコードは削除するべきだと考えました🙏
@kurumadaisuke
https://github.com/fjordllc/bootcamp/blob/206f5c813b6b8a8ef9791b759b7f85a7fc81c8af/app/models/concerns/searchable.rb#L9
拡張する場合はこのスコープを上書きする
と書いてあって、検索対象の拡張の仕組みを用意してくれている感じ(あえてやっている)のでちょっと悩むところですが、まあ削除しちゃっていいとおもいます~。
@komagata お疲れ様です!! 本issueについてですが、私が休会中に以下issueで別の方に行っていただいたので本件についてはクローズでよろしかったでしょうか?🙏 ご確認お願いします! https://github.com/fjordllc/bootcamp/pull/7941
@komagata @machida 昨日アサインしていただいた件についてですが、issue自体がクローズされているようです。 私の方で何か対応が必要なことがあれば、ご確認いただけますでしょうか?🙏
@kurumadaisuke
本issueについてですが、私が休会中に以下issueで別の方に行っていただいたので本件についてはクローズでよろしかったでしょうか?🙏
はい、こちらクロースで大丈夫です。
@komagata ご対応ありがとうございました!