Skip to content

プラクティスページのリンクのアンカーに入るカテゴリIDが正しくない #8998

@jun-kondo

Description

@jun-kondo

概要

プラクティス一覧ページを開いた際、着手中のプラクティスがない場合、次に手を付けるべきプラクティスのカテゴリーが正しく表示されない。
ナビゲーションバーのプラクティスのリンクのアンカー入るカテゴリのidが正しくない。

再現手順(ローカル環境)

  1. プラクティス一覧ページを開く
  2. 着手中ステータスのプラクティスがあればステータスを変更する
  3. "Mac OS X"カテゴリの"OS X Mountain Lionをクリーンインストールする"を未着手にする。同カテゴリの他のプラクティスも未着手にする
  4. 別のページに遷移し、ナビゲーションバーのプラクティスをクリックする。"Mac OS X"カテゴリのスクロール位置でページが表示されることを確認する
  5. "UNIX"カテゴリの"Terminalの基礎を覚える"。同カテゴリの他のプラクティスも未着手にする
  6. "OS X Mountain Lionをクリーンインストールする"を修了する
  7. 別のページに遷移し、ナビゲーションバーのプラクティスをクリックする。"UNIX"カテゴリにスクロールされた位置でページが表示されることを確認する

期待される振る舞い

着手中プラクティスがない場合は「最上段の未着手のプラクティス」が所属するカテゴリーまでスクロールしてから表示

スクリーンショット

"Mac OS X"カテゴリの"OS X Mountain Lionをクリーンインストールする"を修了すると、
Image from Gyazo
次回からのプラクティスページ一覧に遷移したときは次の"UNIX"カテゴリに遷移された状態で表示されます。
Image from Gyazo

関連Issue

Ref: #3783

関連プルリクエスト

#3924

着手中プラクティスが複数あった場合の挙動について

報告内容

プラクティス一覧ページを開いた際、着手中のプラクティスが複数ある場合、「最上段の着手中のプラクティス」が所属するカテゴリーが正しく表示されることが保証されていないです。

期待される振る舞い

着手中プラクティスが複数ある場合は「最上段の着手中のプラクティス」が所属するカテゴリーまでスクロールしてから表示

コード上で確認

category_active_or_unstarted_practiceメソッドでユーザーが着手中のプラクティスが存在するかで分岐します。
bootcamp/app/models/user_course_practice.rb at a377efe780906940ac64809f1920111d5220e9c8 · fjordllc/bootcamp · GitHub

  1. category_active_or_unstarted_practicetrue
  2. category_having_active_practiceが呼ばれ
  3. @user.active_practices&.first&.categories&.firstが返される
    • app/views/application/_global_nav.slimにてナビゲーションバーのリンクのアンカーにカテゴリのidが埋め込まれる

問題点としては、@user.active_practiceはソートされておらず着手中プラクティスの並び順が一意に決まっていないです。

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

完成

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions