概要
プラクティス一覧ページを開いた際、着手中のプラクティスがない場合、次に手を付けるべきプラクティスのカテゴリーが正しく表示されない。
ナビゲーションバーのプラクティスのリンクのアンカー入るカテゴリのidが正しくない。
再現手順(ローカル環境)
- プラクティス一覧ページを開く
- 着手中ステータスのプラクティスがあればステータスを変更する
- "Mac OS X"カテゴリの"OS X Mountain Lionをクリーンインストールする"を未着手にする。同カテゴリの他のプラクティスも未着手にする
- 別のページに遷移し、ナビゲーションバーのプラクティスをクリックする。"Mac OS X"カテゴリのスクロール位置でページが表示されることを確認する
- "UNIX"カテゴリの"Terminalの基礎を覚える"。同カテゴリの他のプラクティスも未着手にする
- "OS X Mountain Lionをクリーンインストールする"を修了する
- 別のページに遷移し、ナビゲーションバーのプラクティスをクリックする。"UNIX"カテゴリにスクロールされた位置でページが表示されることを確認する
期待される振る舞い
着手中プラクティスがない場合は「最上段の未着手のプラクティス」が所属するカテゴリーまでスクロールしてから表示
スクリーンショット
"Mac OS X"カテゴリの"OS X Mountain Lionをクリーンインストールする"を修了すると、

次回からのプラクティスページ一覧に遷移したときは次の"UNIX"カテゴリに遷移された状態で表示されます。

関連Issue
Ref: #3783
関連プルリクエスト
#3924
着手中プラクティスが複数あった場合の挙動について
報告内容
プラクティス一覧ページを開いた際、着手中のプラクティスが複数ある場合、「最上段の着手中のプラクティス」が所属するカテゴリーが正しく表示されることが保証されていないです。
期待される振る舞い
着手中プラクティスが複数ある場合は「最上段の着手中のプラクティス」が所属するカテゴリーまでスクロールしてから表示
コード上で確認
category_active_or_unstarted_practiceメソッドでユーザーが着手中のプラクティスが存在するかで分岐します。
bootcamp/app/models/user_course_practice.rb at a377efe780906940ac64809f1920111d5220e9c8 · fjordllc/bootcamp · GitHub
category_active_or_unstarted_practiceでtrue
category_having_active_practiceが呼ばれ
@user.active_practices&.first&.categories&.firstが返される
app/views/application/_global_nav.slimにてナビゲーションバーのリンクのアンカーにカテゴリのidが埋め込まれる
問題点としては、@user.active_practiceはソートされておらず着手中プラクティスの並び順が一意に決まっていないです。
概要
プラクティス一覧ページを開いた際、着手中のプラクティスがない場合、次に手を付けるべきプラクティスのカテゴリーが正しく表示されない。
ナビゲーションバーのプラクティスのリンクのアンカー入るカテゴリのidが正しくない。
再現手順(ローカル環境)
期待される振る舞い
着手中プラクティスがない場合は「最上段の未着手のプラクティス」が所属するカテゴリーまでスクロールしてから表示
スクリーンショット
"Mac OS X"カテゴリの"OS X Mountain Lionをクリーンインストールする"を修了すると、


次回からのプラクティスページ一覧に遷移したときは次の"UNIX"カテゴリに遷移された状態で表示されます。
関連Issue
Ref: #3783
関連プルリクエスト
#3924
着手中プラクティスが複数あった場合の挙動について
報告内容
プラクティス一覧ページを開いた際、着手中のプラクティスが複数ある場合、「最上段の着手中のプラクティス」が所属するカテゴリーが正しく表示されることが保証されていないです。
期待される振る舞い
着手中プラクティスが複数ある場合は「最上段の着手中のプラクティス」が所属するカテゴリーまでスクロールしてから表示
コード上で確認
category_active_or_unstarted_practiceメソッドでユーザーが着手中のプラクティスが存在するかで分岐します。bootcamp/app/models/user_course_practice.rb at a377efe780906940ac64809f1920111d5220e9c8 · fjordllc/bootcamp · GitHub
category_active_or_unstarted_practiceでtruecategory_having_active_practiceが呼ばれ@user.active_practices&.first&.categories&.firstが返されるapp/views/application/_global_nav.slimにてナビゲーションバーのリンクのアンカーにカテゴリのidが埋め込まれる問題点としては、
@user.active_practiceはソートされておらず着手中プラクティスの並び順が一意に決まっていないです。