プロジェクト

全般

プロフィール

バグ #660

完了

フェーズ #620: Phase 9. 本番/インフラ/バグ

Story の default を管理画面の編集モーダルから設定しても反映されない

本間 紀史 さんが8日前に追加. 8日前に更新.

ステータス:
終了
優先度:
通常
担当者:
開始日:
2026/06/22
期日:
進捗率:

0%

予定工数:

説明

症状

管理画面の Story 編集モーダルで「default」チェックボックスを設定して保存しても、保存後に編集モーダルを再度開くとチェック状態が反映されない(実態と表示が食い違う)。

根本原因

app/views/admin/stories/index.html.erb L132 の

editForm['story[default]'].checked = story.default

f.check_box :default_form_fields.html.erb L8)は同名 name="story[default]" の input を 2 つ(hidden value=0 と checkbox value=1)出力する。そのため editForm['story[default]'] は単一要素ではなく RadioNodeList を返し、.checked への代入は黙って無効化される(編集フォームの初期描画は @story = Story.new のため常に未チェック)。

結果、編集モーダルを開いてもチェック状態が同期されず、既存 default を編集すると意図せず default が外れる/反映されないように見える。

修正方針

チェックボックス本体を確実に取得して .checked をセットする。

editForm.querySelector('input[type="checkbox"][name="story[default]"]').checked = story.default

備考

モデル(Story#ensure_single_default)・コントローラ・strong parameters・スキーマは正常。バグはフロントエンド(編集モーダル JS)に局在。

他の形式にエクスポート: Atom PDF