操作
バグ #660
完了フェーズ #620: Phase 9. 本番/インフラ/バグ
Story の default を管理画面の編集モーダルから設定しても反映されない
開始日:
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)に局在。
操作