以前の開発者が作成したコードのいくつかの修正を担当しました。彼はシリアル化されたチェックボックスの値をデータベースに保存しました。値は説明されているようにテーブルに保存されていることは間違いありませんが、フォームが表示されたときに、DBに保存された内容に従ってチェックボックスがオンになりません。フォームがどのチェックボックスをチェックする必要があるかを知る前に、そのデータのシリアル化を解除する必要があると想定しています。
次のコードがcheck_box_tagメソッドのchecked属性にtrueを割り当てることができるように、除外データを逆シリアル化する方法はありますか?
<p><label for="supplemental_material_type_exclusions">Exclusions</label><br/>
<%= ApplicantBudgetlevel.find(:all).collect { |p|
if @supplemental_material_type.exclusions
checked = @supplemental_material_type.exclusions.include?(p.level)
else
checked = false
end
"#{check_box_tag('supplemental_material_type[exclusions][]', p.level, checked)} #{p.level} - #{p.range}<br />\n"
} %>
</p>